]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/g729_parser.c
avcodec: Constify all the AVCodecParsers
[ffmpeg] / libavcodec / g729_parser.c
index 9982dbfffccf3cf81bb26073e3bda9bc7c7002e0..76d6f938085b22df0fd4302fcb9b847161994385 100644 (file)
@@ -45,13 +45,20 @@ static int g729_parse(AVCodecParserContext *s1, AVCodecContext *avctx,
     int next;
 
     if (!s->block_size) {
-        av_assert1(avctx->codec_id == AV_CODEC_ID_G729);
         /* FIXME: replace this heuristic block_size with more precise estimate */
         s->block_size = (avctx->bit_rate < 8000) ? G729D_6K4_BLOCK_SIZE : G729_8K_BLOCK_SIZE;
+        if (avctx->codec_id == AV_CODEC_ID_ACELP_KELVIN)
+            s->block_size++;
         s->block_size *= avctx->channels;
         s->duration   = avctx->frame_size;
     }
 
+    if (!s->block_size) {
+        *poutbuf      = buf;
+        *poutbuf_size = buf_size;
+        return buf_size;
+    }
+
     if (!s->remaining)
         s->remaining = s->block_size;
     if (s->remaining <= buf_size) {
@@ -75,8 +82,8 @@ static int g729_parse(AVCodecParserContext *s1, AVCodecContext *avctx,
     return next;
 }
 
-AVCodecParser ff_g729_parser = {
-    .codec_ids      = { AV_CODEC_ID_G729 },
+const AVCodecParser ff_g729_parser = {
+    .codec_ids      = { AV_CODEC_ID_G729, AV_CODEC_ID_ACELP_KELVIN },
     .priv_data_size = sizeof(G729ParseContext),
     .parser_parse   = g729_parse,
     .parser_close   = ff_parse_close,