Working of _chain () function

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

Working of _chain () function

I have a question regarding video_encoder_chain. My pipeline seems to be
broken between decoding and encoding some data, more precisely I'm decoding
MPEG2 to raw and then trying to encode to H264. I've read about scheduling
methods and got to know that my decoder pads are working in push mode
emitting buffers at it's src pad. However, my encoder (openh264enc) is not
working as expected. It is receiving EVENT_TAG at it's sink but
gst_video_encoder_chain() is not getting invoked after the taglist is
achieved. I've checked the caps negotiation and seems like there's no issue
there. I've also confirmed that decoder is executing finish_frame() and
buffers are pushed downstream. Do I need to handle this particular event
explicitly in sink_event_default ? Or maybe my plugins are incompatible ?

It goes like, mpeg2dec --> video/x-raw,format=I420 --> openh264enc -->
h264parse --> filesink

One particular observation I found was, the decoder (mpeg2dec) was not able
to find valid PTS and was using oldest PTS everytime. Could this be the
possible cause for video_encoder_chain for not getting invoked?

Sent from:
gstreamer-devel mailing list
[hidden email]