diff options
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | gst/mpegaudioparse/gstmpegaudioparse.c | 8 |
2 files changed, 12 insertions, 3 deletions
@@ -1,3 +1,10 @@ +2004-12-06 Arwed v. Merkatz <v.merkatz@gmx.net> + + * gst/mpegaudioparse/gstmpegaudioparse.c: (gst_mp3parse_chain): + set BUFFER_DURATION to correct values (mpeg1 audio frame length is fixed) + * gst/matroska/matroska-mux.c: (gst_matroska_mux_audio_pad_link): + set default_duration for mpeg1 audio + 2004-12-06 Benjamin Otte <in7y118@public.uni-hamburg.de> * ext/alsa/gstalsa.c: (gst_alsa_get_caps), (gst_alsa_close_audio): diff --git a/gst/mpegaudioparse/gstmpegaudioparse.c b/gst/mpegaudioparse/gstmpegaudioparse.c index 98fce11c..8e77acac 100644 --- a/gst/mpegaudioparse/gstmpegaudioparse.c +++ b/gst/mpegaudioparse/gstmpegaudioparse.c @@ -417,9 +417,11 @@ gst_mp3parse_chain (GstPad * pad, GstData * _data) mp3parse->in_flush = FALSE; } GST_BUFFER_TIMESTAMP (outbuf) = last_ts; - GST_BUFFER_DURATION (outbuf) = - 8 * (GST_SECOND / 1000) * GST_BUFFER_SIZE (outbuf) / - mp3parse->bit_rate; + if (mp3parse->layer == 1) { + GST_BUFFER_DURATION (outbuf) = 384 * GST_SECOND / mp3parse->rate; + } else { + GST_BUFFER_DURATION (outbuf) = 1152 * GST_SECOND / mp3parse->rate; + } if (GST_PAD_CAPS (mp3parse->srcpad) != NULL) { gst_pad_push (mp3parse->srcpad, GST_DATA (outbuf)); |