play a video of mpeg2ts using gstreamer-1.8.2 will be stuck

Donghui Bai 1141006410 at qq.com
Thu Aug 11 06:53:46 UTC 2016


Hi all, 
  
I play a video with url(http://10.9.44.16/xxx.ts) using gstreamer 1.8.2 on
Android, 
and use the mpegtsdemux(playbin2 automatically linked) as TS demuxer, the
playback 
will be stuck.

And I found some exception information about PTS in  log.log
<http://gstreamer-devel.966125.n4.nabble.com/file/n4679039/log.log>  , raw
PTS 0:00:02.480000000 & 
0:00:03.480000000 all converted to 0:00:01.780000000 with
mpegts_packetizer_pts_to_ts.
-----------------------------------------------------------------------------------
08-11 13:36:02.066 15966 16948 D libchplayer: [mpegtspacketizer.c:2256]
<mpegtspacketizer> Using current First PCR:0:00:00.700000000 offset:564
PCR_offset:0:00:00.000000000
08-11 13:36:02.066 15966 16948 E libchplayer: [mpegtspacketizer.c:2327]
<mpegtspacketizer> Returning timestamp 0:00:01.780000000 for pts
0:00:02.480000000 pcr_pid:0x0100
08-11 13:36:02.066 15966 16948 D libchplayer: [tsdemux.c:2117] <tsdemux>
stream PTS 0:00:01.780000000 DTS 99:99:99.999999999
08-11 13:36:02.071 15966 16948 D libchplayer: [tsdemux.c:2502] <tsdemux>
stream:0xb8201620, pid:0x0100 stream_type:27 state:2
08-11 13:36:02.071 15966 16948 D libchplayer: [tsdemux.c:2656] <tsdemux>
stream->pts 0:00:01.780000000
08-11 13:36:02.071 15966 16948 E libchplayer: [tsdemux.c:2677] <tsdemux>
Pushing buffer with pid: 256 , PTS: 0:00:01.780000000 , DTS:
99:99:99.999999999
......
08-11 13:36:02.446 15966 16948 D libchplayer: [mpegtspacketizer.c:2256]
<mpegtspacketizer> Using current First PCR:0:00:02.700000000 offset:226352
PCR_offset:0:00:01.000000000
08-11 13:36:02.446 15966 16948 E libchplayer: [mpegtspacketizer.c:2327]
<mpegtspacketizer> Returning timestamp 0:00:01.780000000 for pts
0:00:03.480000000 pcr_pid:0x0100
08-11 13:36:02.446 15966 16948 D libchplayer: [tsdemux.c:2117] <tsdemux>
stream PTS 0:00:01.780000000 DTS 0:00:01.700000000
08-11 13:36:02.616 15966 16948 E libchplayer: [tsdemux.c:2677] <tsdemux>
Pushing buffer with pid: 256 , PTS: 0:00:01.780000000 , DTS:
0:00:01.700000000
......
-----------------------------------------------------------------------------------

I guess it result in stuck, and modify mpegts_packetizer_pts_to_ts that use
raw PTS as 
return value, then the playback is OK.  
-----------------------------------------------------------------------------------
//mpegtspacketizer.c
GstClockTime
mpegts_packetizer_pts_to_ts (MpegTSPacketizer2 * packetizer,
    GstClockTime pts, guint16 pcr_pid)
{
    ......
    if (refpcr != G_MAXINT64)
      /*
      res =
          pts - PCRTIME_TO_GSTTIME (refpcr) + PCRTIME_TO_GSTTIME
(refpcroffset);
      */
      res = pts;
    else
      GST_WARNING ("No groups, can't calculate timestamp");
    ......
}
-----------------------------------------------------------------------------------

Is this some kind of bug, or am I missing something? 
The TS video info can see  tsinfo.txt
<http://gstreamer-devel.966125.n4.nabble.com/file/n4679039/tsinfo.txt>  



--
View this message in context: http://gstreamer-devel.966125.n4.nabble.com/play-a-video-of-mpeg2ts-using-gstreamer-1-8-2-will-be-stuck-tp4679039.html
Sent from the GStreamer-devel mailing list archive at Nabble.com.


More information about the gstreamer-devel mailing list