Hello!
I use OMX to transcode video streams to h264. MPEG2 SD input streams looks ok, but h264 FHD looks like on picture below.
What parameter could be a reason of this?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hello!
I use OMX to transcode video streams to h264. MPEG2 SD input streams looks ok, but h264 FHD looks like on picture below.
What parameter could be a reason of this?
Hello,
Provide more details about your application like:
resolutions on the input/output ports of the component;
the components which are connected in the pipe etc.
Yaroslav Popov said:MPEG2 SD input streams looks ok
This frame it seems double. Could you check the output of the mpeg2 decoder component or on the input of the h264encoder component?
Best Regards,
Margarita
Video is interlaced. Pipelines: mpeg2(dec)->h264(enc), h264(dec)->h264(enc)
Here is gdb output below with port defenitions. The first pipeline works, but the second doesn't.
MPEG2->h264 correct: decoder input: {nSize = 96, nVersion = {s = {nVersionMajor = 1 '\001', nVersionMinor = 1 '\001', nRevision = 2 '\002', nStep = 0 '\0'}, nVersion = 131329}, nPortIndex = 0, eDir = OMX_DirInput, nBufferCountActual = 4, nBufferCountMin = 4, nBufferSize = 1244160, bEnabled = OMX_TRUE, bPopulated = OMX_FALSE, eDomain = OMX_PortDomainVideo, format = {audio = {cMIMEType = 0x9e355280 <Address 0x9e355280 out of bounds>, pNativeRender = 0x0, bFlagErrorConcealment = 720, eEncoding = 576}, video = { cMIMEType = 0x9e355280 <Address 0x9e355280 out of bounds>, pNativeRender = 0x0, nFrameWidth = 720, nFrameHeight = 576, nStride = 720, nSliceHeight = 16, nBitrate = 10485760, xFramerate = 1638400, bFlagErrorConcealment = OMX_FALSE, eCompressionFormat = OMX_VIDEO_CodingMPEG2, eColorFormat = OMX_COLOR_FormatUnused, pNativeWindow = 0x0}, image = { cMIMEType = 0x9e355280 <Address 0x9e355280 out of bounds>, pNativeRender = 0x0, nFrameWidth = 720, nFrameHeight = 576, nStride = 720, nSliceHeight = 16, bFlagErrorConcealment = 10485760, eCompressionFormat = 1638400, eColorFormat = OMX_COLOR_FormatUnused, pNativeWindow = 0x2}, other = { eFormat = 2654294656}}, bBuffersContiguous = OMX_FALSE, nBufferAlignment = 32} decoder output: {nSize = 96, nVersion = {s = {nVersionMajor = 1 '\001', nVersionMinor = 1 '\001', nRevision = 2 '\002', nStep = 0 '\0'}, nVersion = 131329}, nPortIndex = 1, eDir = OMX_DirOutput, nBufferCountActual = 10, nBufferCountMin = 10, nBufferSize = 700416, bEnabled = OMX_TRUE, bPopulated = OMX_FALSE, eDomain = OMX_PortDomainVideo, format = {audio = {cMIMEType = 0x9e355358 <Address 0x9e355358 out of bounds>, pNativeRender = 0x0, bFlagErrorConcealment = 720, eEncoding = 576}, video = { cMIMEType = 0x9e355358 <Address 0x9e355358 out of bounds>, pNativeRender = 0x0, nFrameWidth = 720, nFrameHeight = 576, nStride = 720, nSliceHeight = 16, nBitrate = 0, xFramerate = 1638400, bFlagErrorConcealment = OMX_FALSE, eCompressionFormat = OMX_VIDEO_CodingUnused, eColorFormat = OMX_COLOR_FormatYUV420PackedSemiPlanar, pNativeWindow = 0x0}, image = { cMIMEType = 0x9e355358 <Address 0x9e355358 out of bounds>, pNativeRender = 0x0, nFrameWidth = 720, nFrameHeight = 576, nStride = 720, nSliceHeight = 16, bFlagErrorConcealment = OMX_FALSE, eCompressionFormat = 1638400, eColorFormat = OMX_COLOR_FormatUnused, pNativeWindow = 0x0}, other = { eFormat = 2654294872}}, bBuffersContiguous = OMX_FALSE, nBufferAlignment = 128} encoder input: {nSize = 96, nVersion = {s = {nVersionMajor = 1 '\001', nVersionMinor = 1 '\001', nRevision = 2 '\002', nStep = 0 '\0'}, nVersion = 131329}, nPortIndex = 0, eDir = OMX_DirInput, nBufferCountActual = 10, nBufferCountMin = 1, nBufferSize = 700416, bEnabled = OMX_TRUE, bPopulated = OMX_FALSE, eDomain = OMX_PortDomainVideo, format = {audio = {cMIMEType = 0x0, pNativeRender = 0x0, bFlagErrorConcealment = 720, eEncoding = 288}, video = {cMIMEType = 0x0, pNativeRender = 0x0, nFrameWidth = 720, nFrameHeight = 288, nStride = 720, nSliceHeight = 0, nBitrate = 10000000, xFramerate = 1638400, bFlagErrorConcealment = OMX_FALSE, eCompressionFormat = OMX_VIDEO_CodingUnused, eColorFormat = OMX_COLOR_FormatYUV420SemiPlanar, pNativeWindow = 0x0}, image = {cMIMEType = 0x0, pNativeRender = 0x0, nFrameWidth = 720, nFrameHeight = 288, nStride = 720, nSliceHeight = 0, bFlagErrorConcealment = 10000000, eCompressionFormat = 1638400, eColorFormat = OMX_COLOR_FormatUnused, pNativeWindow = 0x0}, other = {eFormat = OMX_OTHER_FormatTime}}, bBuffersContiguous = OMX_FALSE, nBufferAlignment = 128} encoder output: {nSize = 96, nVersion = {s = {nVersionMajor = 1 '\001', nVersionMinor = 1 '\001', nRevision = 2 '\002', nStep = 0 '\0'}, nVersion = 131329}, nPortIndex = 1, eDir = OMX_DirOutput, nBufferCountActual = 4, nBufferCountMin = 1, nBufferSize = 829440, bEnabled = OMX_TRUE, bPopulated = OMX_FALSE, eDomain = OMX_PortDomainVideo, format = {audio = {cMIMEType = 0x0, pNativeRender = 0x0, bFlagErrorConcealment = 720, eEncoding = 576}, video = {cMIMEType = 0x0, pNativeRender = 0x0, nFrameWidth = 720, nFrameHeight = 576, nStride = 720, nSliceHeight = 288, nBitrate = 5000000, xFramerate = 1638400, bFlagErrorConcealment = OMX_FALSE, eCompressionFormat = OMX_VIDEO_CodingAVC, eColorFormat = OMX_COLOR_FormatUnused, pNativeWindow = 0x0}, image = {cMIMEType = 0x0, pNativeRender = 0x0, nFrameWidth = 720, nFrameHeight = 576, nStride = 720, nSliceHeight = 288, bFlagErrorConcealment = 5000000, eCompressionFormat = 1638400, eColorFormat = OMX_COLOR_FormatUnused, pNativeWindow = 0x7}, other = { eFormat = OMX_OTHER_FormatTime}}, bBuffersContiguous = OMX_FALSE, nBufferAlignment = 128} **************************************************************************************************************** h264->h264 incorrect: decoder input: {nSize = 96, nVersion = {s = {nVersionMajor = 1 '\001', nVersionMinor = 1 '\001', nRevision = 2 '\002', nStep = 0 '\0'}, nVersion = 131329}, nPortIndex = 0, eDir = OMX_DirInput, nBufferCountActual = 4, nBufferCountMin = 4, nBufferSize = 6220800, bEnabled = OMX_TRUE, bPopulated = OMX_FALSE, eDomain = OMX_PortDomainVideo, format = {audio = {cMIMEType = 0x9e355280 <Address 0x9e355280 out of bounds>, pNativeRender = 0x0, bFlagErrorConcealment = 1920, eEncoding = 1080}, video = { cMIMEType = 0x9e355280 <Address 0x9e355280 out of bounds>, pNativeRender = 0x0, nFrameWidth = 1920, nFrameHeight = 1080, nStride = 1920, nSliceHeight = 16, nBitrate = 10485760, xFramerate = 1638400, bFlagErrorConcealment = OMX_FALSE, eCompressionFormat = OMX_VIDEO_CodingAVC, eColorFormat = OMX_COLOR_FormatUnused, pNativeWindow = 0x0}, image = { cMIMEType = 0x9e355280 <Address 0x9e355280 out of bounds>, pNativeRender = 0x0, nFrameWidth = 1920, nFrameHeight = 1080, nStride = 1920, nSliceHeight = 16, bFlagErrorConcealment = 10485760, eCompressionFormat = 1638400, eColorFormat = OMX_COLOR_FormatUnused, pNativeWindow = 0x7}, other = { eFormat = 2654294656}}, bBuffersContiguous = OMX_FALSE, nBufferAlignment = 32} decoder output: {nSize = 96, nVersion = {s = {nVersionMajor = 1 '\001', nVersionMinor = 1 '\001', nRevision = 2 '\002', nStep = 0 '\0'}, nVersion = 131329}, nPortIndex = 1, eDir = OMX_DirOutput, nBufferCountActual = 10, nBufferCountMin = 10, nBufferSize = 3637248, bEnabled = OMX_TRUE, bPopulated = OMX_FALSE, eDomain = OMX_PortDomainVideo, format = {audio = {cMIMEType = 0x9e355358 <Address 0x9e355358 out of bounds>, pNativeRender = 0x0, bFlagErrorConcealment = 1920, eEncoding = 1088}, video = { cMIMEType = 0x9e355358 <Address 0x9e355358 out of bounds>, pNativeRender = 0x0, nFrameWidth = 1920, nFrameHeight = 1088, nStride = 2048, nSliceHeight = 16, nBitrate = 0, xFramerate = 1638400, bFlagErrorConcealment = OMX_FALSE, eCompressionFormat = OMX_VIDEO_CodingUnused, eColorFormat = OMX_COLOR_FormatYUV420PackedSemiPlanar, pNativeWindow = 0x0}, image = { cMIMEType = 0x9e355358 <Address 0x9e355358 out of bounds>, pNativeRender = 0x0, nFrameWidth = 1920, nFrameHeight = 1088, nStride = 2048, nSliceHeight = 16, bFlagErrorConcealment = OMX_FALSE, eCompressionFormat = 1638400, eColorFormat = OMX_COLOR_FormatUnused, pNativeWindow = 0x0}, other = { eFormat = 2654294872}}, bBuffersContiguous = OMX_FALSE, nBufferAlignment = 128} encoder input: {nSize = 96, nVersion = {s = {nVersionMajor = 1 '\001', nVersionMinor = 1 '\001', nRevision = 2 '\002', nStep = 0 '\0'}, nVersion = 131329}, nPortIndex = 0, eDir = OMX_DirInput, nBufferCountActual = 10, nBufferCountMin = 1, nBufferSize = 3637248, bEnabled = OMX_TRUE, bPopulated = OMX_FALSE, eDomain = OMX_PortDomainVideo, format = {audio = {cMIMEType = 0x0, pNativeRender = 0x0, bFlagErrorConcealment = 1920, eEncoding = 544}, video = {cMIMEType = 0x0, pNativeRender = 0x0, nFrameWidth = 1920, nFrameHeight = 544, nStride = 2048, nSliceHeight = 0, nBitrate = 10000000, xFramerate = 1638400, bFlagErrorConcealment = OMX_FALSE, eCompressionFormat = OMX_VIDEO_CodingUnused, eColorFormat = OMX_COLOR_FormatYUV420SemiPlanar, pNativeWindow = 0x0}, image = {cMIMEType = 0x0, pNativeRender = 0x0, nFrameWidth = 1920, nFrameHeight = 544, nStride = 2048, nSliceHeight = 0, bFlagErrorConcealment = 10000000, eCompressionFormat = 1638400, eColorFormat = OMX_COLOR_FormatUnused, pNativeWindow = 0x0}, other = {eFormat = OMX_OTHER_FormatTime}}, bBuffersContiguous = OMX_FALSE, nBufferAlignment = 128} encoder output: {nSize = 96, nVersion = {s = {nVersionMajor = 1 '\001', nVersionMinor = 1 '\001', nRevision = 2 '\002', nStep = 0 '\0'}, nVersion = 131329}, nPortIndex = 1, eDir = OMX_DirOutput, nBufferCountActual = 4, nBufferCountMin = 1, nBufferSize = 4423680, bEnabled = OMX_TRUE, bPopulated = OMX_FALSE, eDomain = OMX_PortDomainVideo, format = {audio = {cMIMEType = 0x0, pNativeRender = 0x0, bFlagErrorConcealment = 1920, eEncoding = 1080}, video = {cMIMEType = 0x0, pNativeRender = 0x0, nFrameWidth = 1920, nFrameHeight = 1080, nStride = 2048, nSliceHeight = 544, nBitrate = 5000000, xFramerate = 1638400, bFlagErrorConcealment = OMX_FALSE, eCompressionFormat = OMX_VIDEO_CodingAVC, eColorFormat = OMX_COLOR_FormatUnused, pNativeWindow = 0x0}, image = {cMIMEType = 0x0, pNativeRender = 0x0, nFrameWidth = 1920, nFrameHeight = 1080, nStride = 2048, nSliceHeight = 544, bFlagErrorConcealment = 5000000, eCompressionFormat = 1638400, eColorFormat = OMX_COLOR_FormatUnused, pNativeWindow = 0x7}, other = {eFormat = OMX_OTHER_FormatTime}}, bBuffersContiguous = OMX_FALSE, nBufferAlignment = 128}
Hello,
Are you using DEI?
I would recommended you to check :
http://processors.wiki.ti.com/index.php/VENC
for interlace encoding.
I meant also to grab the frames between components to check is it correct and between which two elements is broken.
Best Regards,
Margarita
Stupid mistake. I didn't take into account the buffer offset. So the garbage was written.