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