opusenc: Disable granule position calculations by the base class
authorSebastian Dröge <sebastian@centricular.com>
Mon, 2 Nov 2015 08:30:52 +0000 (10:30 +0200)
committerSebastian Dröge <sebastian@centricular.com>
Tue, 3 Nov 2015 18:35:41 +0000 (20:35 +0200)
It is doing the wrong thing because of the Opus pre-skip: while the timestamps
are shifted by the pre-skip, the granule positions are not shifted.

oggmux is doing the right thing here already.

https://bugzilla.gnome.org/show_bug.cgi?id=757153

ext/opus/gstopusenc.c

index 718643a..24bdeaf 100644 (file)
@@ -377,8 +377,6 @@ gst_opus_enc_finalize (GObject * object)
 static void
 gst_opus_enc_init (GstOpusEnc * enc)
 {
-  GstAudioEncoder *benc = GST_AUDIO_ENCODER (enc);
-
   GST_DEBUG_OBJECT (enc, "init");
 
   GST_PAD_SET_ACCEPT_TEMPLATE (GST_AUDIO_ENCODER_SINK_PAD (enc));
@@ -399,10 +397,6 @@ gst_opus_enc_init (GstOpusEnc * enc)
   enc->packet_loss_percentage = DEFAULT_PACKET_LOSS_PERCENT;
   enc->max_payload_size = DEFAULT_MAX_PAYLOAD_SIZE;
   enc->audio_type = DEFAULT_AUDIO_TYPE;
-
-  /* arrange granulepos marking (and required perfect ts) */
-  gst_audio_encoder_set_mark_granule (benc, TRUE);
-  gst_audio_encoder_set_perfect_timestamp (benc, TRUE);
 }
 
 static gboolean