changeset 227:b0d2d719ae41 libavformat

hacks to support Xan AVI files
author tmmm
date Mon, 08 Sep 2003 04:17:40 +0000
parents d55e4b761e24
children 542e6d639bb9
files avidec.c avienc.c
diffstat 2 files changed, 8 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/avidec.c	Mon Sep 08 04:15:27 2003 +0000
+++ b/avidec.c	Mon Sep 08 04:17:40 2003 +0000
@@ -88,6 +88,7 @@
     unsigned int size, nb_frames;
     int i, n;
     AVStream *st;
+    int xan_video = 0;  /* hack to support Xan A/V */
 
     if (get_riff(avi, pb) < 0)
         return -1;
@@ -274,12 +275,18 @@
                     st->codec.codec_type = CODEC_TYPE_VIDEO;
                     st->codec.codec_tag = tag1;
                     st->codec.codec_id = codec_get_id(codec_bmp_tags, tag1);
+                    if (st->codec.codec_id == CODEC_ID_XAN_WC4)
+                        xan_video = 1;
 //                    url_fskip(pb, size - 5 * 4);
                     break;
                 case CODEC_TYPE_AUDIO:
                     get_wav_header(pb, &st->codec, size);
                     if (size%2) /* 2-aligned (fix for Stargate SG-1 - 3x18 - Shades of Grey.avi) */
                         url_fskip(pb, 1);
+                    /* special case time: To support Xan DPCM, hardcode
+                     * the format if Xxan is the video codec */
+                    if (xan_video)
+                        st->codec.codec_id = CODEC_ID_XAN_DPCM;
                     break;
                 default:
                     url_fskip(pb, size);
--- a/avienc.c	Mon Sep 08 04:15:27 2003 +0000
+++ b/avienc.c	Mon Sep 08 04:17:40 2003 +0000
@@ -143,6 +143,7 @@
     { CODEC_ID_ASV2, MKTAG('A', 'S', 'V', '2') },
     { CODEC_ID_VCR1, MKTAG('V', 'C', 'R', '1') },
     { CODEC_ID_FFV1, MKTAG('F', 'F', 'V', '1') },
+    { CODEC_ID_XAN_WC4, MKTAG('X', 'x', 'a', 'n') },
     { 0, 0 },
 };