[SCM] libav/experimental: Support uncompressed ("Resolution 1:1") Avid AVI Codec, (partially) fixes issue 1474.

siretart at users.alioth.debian.org siretart at users.alioth.debian.org
Sun Jun 30 16:57:22 UTC 2013


The following commit has been merged in the experimental branch:
commit 0941ee0fa656eb3abc2bdf8abd57fa0eb8dd8bac
Author: Carl Eugen Hoyos <cehoyos at rainbow.studorg.tuwien.ac.at>
Date:   Tue Jan 12 00:29:26 2010 +0000

    Support uncompressed ("Resolution 1:1") Avid AVI Codec, (partially) fixes issue 1474.
    
    Originally committed as revision 21154 to svn://svn.ffmpeg.org/ffmpeg/trunk

diff --git a/libavcodec/rawdec.c b/libavcodec/rawdec.c
index fe96440..47fcc70 100644
--- a/libavcodec/rawdec.c
+++ b/libavcodec/rawdec.c
@@ -74,6 +74,8 @@ static av_cold int raw_init_decoder(AVCodecContext *avctx)
 
     if (avctx->codec_tag == MKTAG('r','a','w',' '))
         avctx->pix_fmt = findPixelFormat(pixelFormatBpsMOV, avctx->bits_per_coded_sample);
+    else if (avctx->codec_tag == MKTAG('A', 'V', 'R', 'n'))
+        avctx->pix_fmt = PIX_FMT_UYVY422; // Avid AVI Codec "Resolution 1:1"
     else if (avctx->codec_tag)
         avctx->pix_fmt = findPixelFormat(ff_raw_pixelFormatTags, avctx->codec_tag);
     else if (avctx->bits_per_coded_sample)
diff --git a/libavformat/avidec.c b/libavformat/avidec.c
index 6719c9d..854ebc2 100644
--- a/libavformat/avidec.c
+++ b/libavformat/avidec.c
@@ -518,6 +518,11 @@ static int avi_read_header(AVFormatContext *s, AVFormatParameters *ap)
                     st->codec->codec_tag = tag1;
                     st->codec->codec_id = ff_codec_get_id(ff_codec_bmp_tags, tag1);
                     st->need_parsing = AVSTREAM_PARSE_HEADERS; // This is needed to get the pict type which is necessary for generating correct pts.
+                    // Support "Resolution 1:1" for Avid AVI Codec
+                    if(tag1 == MKTAG('A', 'V', 'R', 'n') &&
+                       st->codec->extradata_size >= 31 &&
+                       !memcmp(&st->codec->extradata[28], "1:1", 3))
+                        st->codec->codec_id = CODEC_ID_RAWVIDEO;
 
                     if(st->codec->codec_tag==0 && st->codec->height > 0 && st->codec->extradata_size < 1U<<30){
                         st->codec->extradata_size+= 9;

-- 
Libav/FFmpeg packaging



More information about the pkg-multimedia-commits mailing list