summaryrefslogtreecommitdiffstats
path: root/gst/mpegdemux/gstmpegtsdemux.c
diff options
context:
space:
mode:
authorEdward Hervey <bilboed@bilboed.com>2009-05-11 16:58:58 +0200
committerEdward Hervey <bilboed@bilboed.com>2009-05-11 16:58:58 +0200
commitbc062b9acf1232ee5643dd7976741c7a47378cd6 (patch)
treef536f4d08122d6f4183b290e36543a97dbb9d399 /gst/mpegdemux/gstmpegtsdemux.c
parent432dd98321f011582e17043470d1e4639c880155 (diff)
downloadgst-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.
Diffstat (limited to 'gst/mpegdemux/gstmpegtsdemux.c')
-rw-r--r--gst/mpegdemux/gstmpegtsdemux.c19
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;