Caps renegotiation with codec_data results in "not-negotiated"

Graham Leggett minfrin at sharp.fm
Mon Nov 21 00:50:05 UTC 2016


Hi all,

I have a transcoding pipeline that looks like this:

http://www.sharp.fm/0.00.02.176790240-gst-launch.PAUSED_PLAYING.dot.svg

I have my MPEG2 TS being transcoded on the fly, however about 55 minutes into the stream we attempt to renegotiate the caps for a reason I don’t understand and then fail as per the log below.

The caps differ by the addition of the “codec_data” to the caps, which for some reason isn’t liked.

Is there a missing element that should be added to handle “codec_data"?

minfrin at towerofpi9:/var/www/html/stream $ cat /mnt/stream/stream10.out | grep ALLOCATION
0:00:02.092736080  9358 0x74b01b80 DEBUG           videoencoder gstvideoencoder.c:1651:gst_video_encoder_negotiate_default:<omxh264enc-omxh264enc0> didn't get downstream ALLOCATION hints
0:00:02.092804985  9358 0x74b01b80 DEBUG           videoencoder gstvideoencoder.c:1658:gst_video_encoder_negotiate_default:<omxh264enc-omxh264enc0> ALLOCATION (1) params: allocation query: 0x75529000, GstQueryAllocation, caps=(GstCaps)"video/x-h264\,\ stream-format\=\(string\)byte-stream\,\ alignment\=\(string\)au\,\ profile\=\(string\)high\,\ level\=\(string\)4\,\ width\=\(int\)544\,\ height\=\(int\)576\,\ pixel-aspect-ratio\=\(fraction\)64/33\,\ framerate\=\(fraction\)25/1", need-pool=(boolean)true, allocator=(GArray)NULL;
0:55:35.347010877  9358 0x74b01b80 DEBUG           videoencoder gstvideoencoder.c:1651:gst_video_encoder_negotiate_default:<omxh264enc-omxh264enc0> didn't get downstream ALLOCATION hints
0:55:35.347103585  9358 0x74b01b80 DEBUG           videoencoder gstvideoencoder.c:1658:gst_video_encoder_negotiate_default:<omxh264enc-omxh264enc0> ALLOCATION (1) params: allocation query: 0x68a3e8f0, GstQueryAllocation, caps=(GstCaps)"video/x-h264\,\ stream-format\=\(string\)byte-stream\,\ alignment\=\(string\)au\,\ profile\=\(string\)high\,\ level\=\(string\)4\,\ width\=\(int\)544\,\ height\=\(int\)576\,\ pixel-aspect-ratio\=\(fraction\)64/33\,\ framerate\=\(fraction\)25/1\,\ codec_data\=\(buffer\)404409361803c489a8", need-pool=(boolean)true, allocator=(GArray)NULL;

The full log is as follows:

0:55:35.294566109  9358 0x75528030 DEBUG            omxvideoenc gstomxvideoenc.c:1612:gst_omx_video_enc_handle_frame:<omxh264enc-omxh264enc0> Passed frame to component
0:55:35.297810135  9358 0x74b01b80 DEBUG            omxvideoenc gstomxvideoenc.c:753:gst_omx_video_enc_loop:<omxh264enc-omxh264enc0> Handling buffer: 0x00000480 0
0:55:35.297892998  9358 0x74b01b80 DEBUG             omxh264enc gstomxh264enc.c:618:gst_omx_h264_enc_handle_output_frame:<omxh264enc-omxh264enc0> got codecconfig in byte-stream format
0:55:35.297927894  9358 0x74b01b80 DEBUG            omxvideoenc gstomxvideoenc.c:762:gst_omx_video_enc_loop:<omxh264enc-omxh264enc0> Finished frame: ok
0:55:35.298151954  9358 0x74b01b80 DEBUG            omxvideoenc gstomxvideoenc.c:770:gst_omx_video_enc_loop:<omxh264enc-omxh264enc0> Read frame from component
0:55:35.298184974  9358 0x74b01b80 DEBUG            omxvideoenc gstomxvideoenc.c:753:gst_omx_video_enc_loop:<omxh264enc-omxh264enc0> Handling buffer: 0x00000480 0
0:55:35.298624604  9358 0x74b01b80 DEBUG            omxvideoenc gstomxvideoenc.c:562:gst_omx_video_enc_handle_output_frame:<omxh264enc-omxh264enc0> Handling codec data
0:55:35.347010877  9358 0x74b01b80 DEBUG           videoencoder gstvideoencoder.c:1651:gst_video_encoder_negotiate_default:<omxh264enc-omxh264enc0> didn't get downstream ALLOCATION hints
/GstPipeline:pipeline0/GstTranscoder:transcoder/GstEncodeBin:encodebin0/GstOMXH264Enc-omxh264enc:omxh264enc-omxh264enc0.GstPad:src: caps = video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, profile=(string)high, level=(string)4, width=(int)544, height=(int)576, pixel-aspect-ratio=(fraction)64/33, framerate=(fraction)25/1, codec_data=(buffer)404409361803c489a8
/GstPipeline:pipeline0/GstTranscoder:transcoder/GstEncodeBin:encodebin0/GstStreamCombiner:streamcombiner0.GstPad:src: caps = video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, profile=(string)high, level=(string)4, width=(int)544, height=(int)576, pixel-aspect-ratio=(fraction)64/33, framerate=(fraction)25/1, codec_data=(buffer)404409361803c489a8
/GstPipeline:pipeline0/GstTranscoder:transcoder/GstEncodeBin:encodebin0/GstStreamCombiner:streamcombiner0.GstStreamCombinerPad:encodingsink: caps = video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, profile=(string)high, level=(string)4, width=(int)544, height=(int)576, pixel-aspect-ratio=(fraction)64/33, framerate=(fraction)25/1, codec_data=(buffer)404409361803c489a8
0:55:35.347103585  9358 0x74b01b80 DEBUG           videoencoder gstvideoencoder.c:1658:gst_video_encoder_negotiate_default:<omxh264enc-omxh264enc0> ALLOCATION (1) params: allocation query: 0x68a3e8f0, GstQueryAllocation, caps=(GstCaps)"video/x-h264\,\ stream-format\=\(string\)byte-stream\,\ alignment\=\(string\)au\,\ profile\=\(string\)high\,\ level\=\(string\)4\,\ width\=\(int\)544\,\ height\=\(int\)576\,\ pixel-aspect-ratio\=\(fraction\)64/33\,\ framerate\=\(fraction\)25/1\,\ codec_data\=\(buffer\)404409361803c489a8", need-pool=(boolean)true, allocator=(GArray)NULL;
0:55:35.354795216  9358 0x74b01b80 DEBUG            omxvideoenc gstomxvideoenc.c:762:gst_omx_video_enc_loop:<omxh264enc-omxh264enc0> Finished frame: ok
0:55:35.355044328  9358 0x74b01b80 DEBUG            omxvideoenc gstomxvideoenc.c:770:gst_omx_video_enc_loop:<omxh264enc-omxh264enc0> Read frame from component
0:55:35.355084796  9358 0x74b01b80 DEBUG            omxvideoenc gstomxvideoenc.c:753:gst_omx_video_enc_loop:<omxh264enc-omxh264enc0> Handling buffer: 0x00000490 0
0:55:35.355134327  9358 0x74b01b80 DEBUG             omxh264enc gstomxh264enc.c:618:gst_omx_h264_enc_handle_output_frame:<omxh264enc-omxh264enc0> got codecconfig in byte-stream format
0:55:35.355169639  9358 0x74b01b80 DEBUG            omxvideoenc gstomxvideoenc.c:762:gst_omx_video_enc_loop:<omxh264enc-omxh264enc0> Finished frame: ok
0:55:35.355347970  9358 0x74b01b80 DEBUG            omxvideoenc gstomxvideoenc.c:770:gst_omx_video_enc_loop:<omxh264enc-omxh264enc0> Read frame from component
0:55:35.355378907  9358 0x74b01b80 DEBUG            omxvideoenc gstomxvideoenc.c:753:gst_omx_video_enc_loop:<omxh264enc-omxh264enc0> Handling buffer: 0x00000430 3336240000
0:55:35.355423594  9358 0x74b01b80 DEBUG           videoencoder gstvideoencoder.c:500:gst_video_encoder_set_headers:<omxh264enc-omxh264enc0> new headers 0x731f4e20
0:55:35.355464687  9358 0x74b01b80 DEBUG            omxvideoenc gstomxvideoenc.c:586:gst_omx_video_enc_handle_output_frame:<omxh264enc-omxh264enc0> Handling output data
0:55:35.355504114  9358 0x74b01b80 DEBUG           videoencoder gstvideoencoder.c:2117:gst_video_encoder_finish_frame:<omxh264enc-omxh264enc0> Sending headers
0:55:35.355882808  9358 0x74b01b80 DEBUG            omxvideoenc gstomxvideoenc.c:762:gst_omx_video_enc_loop:<omxh264enc-omxh264enc0> Finished frame: not-negotiated
0:55:35.356075305  9358 0x74b01b80 DEBUG            omxvideoenc gstomxvideoenc.c:770:gst_omx_video_enc_loop:<omxh264enc-omxh264enc0> Read frame from component
0:55:35.356120045  9358 0x74b01b80 WARN             omxvideoenc gstomxvideoenc.c:843:gst_omx_video_enc_loop:<omxh264enc-omxh264enc0> error: Internal data stream error.
0:55:35.356148690  9358 0x74b01b80 WARN             omxvideoenc gstomxvideoenc.c:843:gst_omx_video_enc_loop:<omxh264enc-omxh264enc0> error: stream stopped, reason not-negotiated
0:55:35.402848003  9358 0x75528030 DEBUG            omxvideoenc gstomxvideoenc.c:1460:gst_omx_video_enc_handle_frame:<omxh264enc-omxh264enc0> Handling frame
ERROR: from element /GstPipeline:pipeline0/GstTranscoder:transcoder/GstEncodeBin:encodebin0/GstOMXH264Enc-omxh264enc:omxh264enc-omxh264enc0: Internal data stream error.
Additional debug info:
gstomxvideoenc.c(843): gst_omx_video_enc_loop (): /GstPipeline:pipeline0/GstTranscoder:transcoder/GstEncodeBin:encodebin0/GstOMXH264Enc-omxh264enc:omxh264enc-omxh264enc0:
stream stopped, reason not-negotiated
Execution ended after 0:55:35.377031725
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
0:55:35.609748254  9358  0x2114e00 DEBUG            omxvideoenc gstomxvideoenc.c:916:gst_omx_video_enc_stop:<omxh264enc-omxh264enc0> Stopping encoder
0:55:35.612063957  9358  0x2114e00 DEBUG            omxvideoenc gstomxvideoenc.c:364:gst_omx_video_enc_shutdown:<omxh264enc-omxh264enc0> Shutting down encoder
0:55:35.740784212  9358  0x2114e00 DEBUG            omxvideoenc gstomxvideoenc.c:387:gst_omx_video_enc_close:<omxh264enc-omxh264enc0> Closing encoder
0:55:35.740867128  9358  0x2114e00 DEBUG            omxvideoenc gstomxvideoenc.c:364:gst_omx_video_enc_shutdown:<omxh264enc-omxh264enc0> Shutting down encoder
Setting pipeline to NULL ...
0:55:35.757703708  9358  0x2114e00 DEBUG           videoencoder gstvideoencoder.c:852:gst_video_encoder_finalize:<omxh264enc-omxh264enc0> finalize
Freeing pipeline …

Regards,
Graham
—

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 3240 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20161121/0361b4fc/attachment.bin>


More information about the gstreamer-devel mailing list