]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/utils.c
support a few more types of VQA files
[ffmpeg] / libavcodec / utils.c
index 33ff0f41537a76f1dc32d61cedbd6bb435d54dd7..91797835f0283297fc527728459f6dc87e180e99 100644 (file)
@@ -222,6 +222,7 @@ void avcodec_default_release_buffer(AVCodecContext *s, AVFrame *pic){
     assert(pic->type==FF_BUFFER_TYPE_INTERNAL);
     assert(s->internal_buffer_count);
 
+    buf = NULL; /* avoids warning */
     for(i=0; i<s->internal_buffer_count; i++){ //just 3-5 checks so is not worth to optimize
         buf= &((InternalBuffer*)s->internal_buffer)[i];
         if(buf->data[0] == pic->data[0])
@@ -271,6 +272,8 @@ void avcodec_get_context_defaults(AVCodecContext *s){
     s->release_buffer= avcodec_default_release_buffer;
     s->get_format= avcodec_default_get_format;
     s->me_subpel_quality=8;
+    s->lmin= FF_QP2LAMBDA * s->qmin;
+    s->lmax= FF_QP2LAMBDA * s->qmax;
     
     s->intra_quant_bias= FF_DEFAULT_QUANT_BIAS;
     s->inter_quant_bias= FF_DEFAULT_QUANT_BIAS;
@@ -304,6 +307,9 @@ int avcodec_open(AVCodecContext *avctx, AVCodec *codec)
 {
     int ret;
 
+    if(avctx->codec)
+        return -1;
+
     avctx->codec = codec;
     avctx->codec_id = codec->id;
     avctx->frame_number = 0;
@@ -470,6 +476,12 @@ void avcodec_string(char *buf, int buf_size, AVCodecContext *enc, int encode)
 
     if (p) {
         codec_name = p->name;
+        if (!encode && enc->codec_id == CODEC_ID_MP3) {
+            if (enc->sub_id == 2)
+                codec_name = "mp2";
+            else if (enc->sub_id == 1)
+                codec_name = "mp1";
+        }
     } else if (enc->codec_name[0] != '\0') {
         codec_name = enc->codec_name;
     } else {