diff options
author | Edward Hervey <bilboed@bilboed.com> | 2009-05-11 16:58:58 +0200 |
---|---|---|
committer | Edward Hervey <bilboed@bilboed.com> | 2009-05-11 16:58:58 +0200 |
commit | bc062b9acf1232ee5643dd7976741c7a47378cd6 (patch) | |
tree | f536f4d08122d6f4183b290e36543a97dbb9d399 | |
parent | 432dd98321f011582e17043470d1e4639c880155 (diff) | |
download | gst-plugins-bad-bc062b9acf1232ee5643dd7976741c7a47378cd6.tar.gz gst-plugins-bad-bc062b9acf1232ee5643dd7976741c7a47378cd6.tar.bz2 gst-plugins-bad-bc062b9acf1232ee5643dd7976741c7a47378cd6.zip |
mpegtsdemux: Only take PCR from the active stream for bitrate estimation.
-rw-r--r-- | gst/mpegdemux/gstmpegtsdemux.c | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/gst/mpegdemux/gstmpegtsdemux.c b/gst/mpegdemux/gstmpegtsdemux.c index 213a4a22..f07e1743 100644 --- a/gst/mpegdemux/gstmpegtsdemux.c +++ b/gst/mpegdemux/gstmpegtsdemux.c @@ -1694,16 +1694,23 @@ gst_mpegts_demux_parse_adaptation_field (GstMpegTSStream * stream, } stream->last_PCR_difference = pcr - stream->last_PCR; } + GST_DEBUG_OBJECT (demux, "valid pcr: %d last PCR difference: %" G_GUINT64_FORMAT, valid_pcr, stream->last_PCR_difference); if (valid_pcr) { - if (demux->pcr[0] == -1) { - demux->pcr[0] = pcr; - demux->num_packets = 0; - } /* Considering a difference of 1 sec ie 90000 ticks */ - else if (demux->pcr[1] == -1 && ((pcr - demux->pcr[0]) >= 90000)) { - demux->pcr[1] = pcr; + GstMpegTSStream *PMT_stream = demux->streams[demux->current_PMT]; + + if (PMT_stream && PMT_stream->PMT.PCR_PID == stream->PID) { + if (demux->pcr[0] == -1) { + GST_DEBUG ("RECORDING pcr[0]:%" G_GUINT64_FORMAT, pcr); + demux->pcr[0] = pcr; + demux->num_packets = 0; + } /* Considering a difference of 1 sec ie 90000 ticks */ + else if (demux->pcr[1] == -1 && ((pcr - demux->pcr[0]) >= 90000)) { + GST_DEBUG ("RECORDING pcr[1]:%" G_GUINT64_FORMAT, pcr); + demux->pcr[1] = pcr; + } } stream->last_PCR = pcr; |