This post was updated on .
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, 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. Best regards, Bai |
Free forum by Nabble | Edit this page |