DVB subtitle stream is not working with mpegtsmux

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

DVB subtitle stream is not working with mpegtsmux

parithi
Hello,

I am using following pipeline for testing DVB subtitle muxing.

gst-launch-1.0 filesrc location=/root/ScreenHD60sec_ENG.ts ! decodebin name=dec  dec. !  video/x-raw ! x264enc ! h264parse ! mux.  dec. !  audio/x-raw ! avenc_aac  ! mux.  dec. !  subpicture/x-dvb ! mux. mpegtsmux name=mux ! filesink location=/root/dvb.ts

The mpegtsmux is not even receiving one buffer of dvb subtitle. collectpads is hoding the dvb subtitle buffer and not releasing to muxer. Thus it halts the entire pipeline.

Since dvb subtitle stream is a sparse stream, the collectpad of dvb subtitle is set to non-waiting mode in mpegtsmux, in function mpegtsmux_sink_event()  of mpegtsmux.c.

      if ((flags & GST_STREAM_FLAG_SPARSE)) {
        GST_COLLECT_PADS_STATE_UNSET (data, GST_COLLECT_PADS_STATE_LOCKED);
        gst_collect_pads_set_waiting (pads, data, FALSE);
        GST_COLLECT_PADS_STATE_SET (data, GST_COLLECT_PADS_STATE_LOCKED);
      }

But again it is set to waiting mode in collectpads, in function gst_collect_pads_recalculate_waiting() of gstcollectpads.c

    if (cmp_res > 0)
      /* stop waiting */
      gst_collect_pads_set_waiting (pads, data, FALSE);
    else {
      if (!GST_COLLECT_PADS_STATE_IS_SET (data, GST_COLLECT_PADS_STATE_WAITING)) {
        /* start waiting */
        gst_collect_pads_set_waiting (pads, data, TRUE);
        result = TRUE;

      }

Setting sparse stream's collectpad to waiting mode might have caused this issue.
If I comment out these two lines in gst_collect_pads_recalculate_waiting(), pipeline started working.
       gst_collect_pads_set_waiting (pads, data, TRUE);
        result = TRUE;


It would be very helpful, if somebody suggest me to fix it in a proper manner.
Input file can be downloaded from : http://subtitling.com/downloads/mediamate-sample-english-hd-dvb/?wpdmdl=7298

Regards,
Parithi
Reply | Threaded
Open this post in threaded view
|

Re: DVB subtitle stream is not working with mpegtsmux

Vincent Génieux-2
6 juillet 2017 15:17 "parithi" <[hidden email]> a écrit:

> Hello,
>
> I am using following pipeline for testing DVB subtitle muxing.
>
[...]

>
> Setting sparse stream's collectpad to waiting mode might have caused this
> issue.
> If I comment out these two lines in gst_collect_pads_recalculate_waiting(),
> pipeline started working.
> *gst_collect_pads_set_waiting (pads, data, TRUE);
> result = TRUE;*
>
> It would be very helpful, if somebody suggest me to fix it in a proper
> manner.
> Input file can be downloaded from :
> http://subtitling.com/downloads/mediamate-sample-english-hd-dvb/?wpdmdl=7298
>
> Regards,
> Parithi
>

Hello,

I had similar bug some years ago, I felt on this patch that solved my issue :

https://bugzilla.gnome.org/show_bug.cgi?id=759807

I hope it will help.


--
vincent.
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: DVB subtitle stream is not working with mpegtsmux

parithi
Thanks vincent.

I'll check  with this patch and let you know the update.

Regards,
Parithi