]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/pcm-dvd.c
arm: Remove a leftover define for the pld instruction
[ffmpeg] / libavcodec / pcm-dvd.c
index 9fd6d13365c7ea50ce5eff25b9b423283643748c..172e93ae826457304baca9553afa931b7192d8ec 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * LPCM codecs for PCM formats found in Video DVD streams
- * Copyright (c) 2009-2013 Christian Schmidt
+ * Copyright (c) 2013 Christian Schmidt
  *
  * This file is part of Libav.
  *
@@ -46,7 +46,6 @@ static av_cold int pcm_dvd_decode_init(AVCodecContext *avctx)
     /* reserve space for 8 channels, 3 bytes/sample, 4 samples/block */
     if (!(s->extra_samples = av_malloc(8 * 3 * 4)))
         return AVERROR(ENOMEM);
-    s->extra_sample_count = 0;
 
     return 0;
 }
@@ -55,8 +54,7 @@ static av_cold int pcm_dvd_decode_uninit(AVCodecContext *avctx)
 {
     PCMDVDContext *s = avctx->priv_data;
 
-    if (s->extra_samples)
-        av_free(s->extra_samples);
+    av_freep(&s->extra_samples);
 
     return 0;
 }
@@ -81,6 +79,9 @@ static int pcm_dvd_parse_header(AVCodecContext *avctx, const uint8_t *header)
      * header[2] dynamic range control (0x80 = off)
      */
 
+    /* Discard potentially existing leftover samples from old channel layout */
+    s->extra_sample_count = 0;
+
     /* get the sample depth and derive the sample format from it */
     avctx->bits_per_coded_sample = 16 + (header[1] >> 6 & 3) * 4;
     if (avctx->bits_per_coded_sample == 28) {