If anyone is interested, here is a patch to enable ffvhuff as a codec in the ffmpeg export module
--- docs/man/transcode.1.old    Wed Jun 28 17:30:06 2006
+++ docs/man/transcode.1        Wed Jun 28 17:31:30 2006
@@ -1199,7 +1199,7 @@
 This module has no run-time dependencies.
 Support for this module is good.
 .RS 8
-Encodes many different formats to both AVI and raw. Supported are mpeg1video, 
mpeg2video, mpeg4, mjpeg, h263, h263p, wmv1, wmv2, rv10, msmpeg4, msmpeg4v2, 
huffyuv and dvvideo.
+Encodes many different formats to both AVI and raw. Supported are mpeg1video, 
mpeg2video, mpeg4, mjpeg, h263, h263p, wmv1, wmv2, rv10, msmpeg4, msmpeg4v2, 
huffyuv, ffvhuff and dvvideo.
 .br
 Supported processing formats: audio RAW (pass-through) PCM AC3, video - RGB 
YUV YUV422
 .RE
--- export/export_ffmpeg.c.old  Wed Jun 28 17:01:29 2006
+++ export/export_ffmpeg.c      Wed Jun 28 17:07:44 2006
@@ -125,7 +125,8 @@
     {"wmv1",       "WMV1", "Windows Media Video v1", 1},
     {"wmv2",       "WMV2", "Windows Media Video v2", 1},
     {"rv10",       "RV10", "old RealVideo codec", 1},
-    {"huffyuv",    "HFYU", "Lossless HUFFYUV codec", 1},
+    {"huffyuv",    "HFYU", "Lossless HUFFYUV codec", 0},
+    {"ffvhuff",    "FFVH", "Enhanced version of HUFFYUV (experimental)", 0},
     {"dvvideo",    "DVSD", "Digital Video", 0},
     {"ffv1",       "FFV1", "FF Video Codec 1 (an experimental lossless 
codec)", 0},
     {"asv1",       "ASV1", "ASUS V1 codec", 0},
@@ -173,6 +174,7 @@
 static struct ffmpeg_codec *codec;
 static int                  is_mpegvideo = 0;
 static int                  is_huffyuv = 0;
+static int                  is_ffvhuff = 0;
 static int                  is_mjpeg = 0;
 static FILE                *mpeg1fd = NULL;
 static int                  interlacing_active = 0;
@@ -260,7 +262,9 @@
                 real_codec = tc_strdup(user_codec_string);
 
     if (!strcmp(user_codec_string, "huffyuv"))
-        is_huffyuv = 1;
+       is_huffyuv = 1;
+       else if (!strcmp(user_codec_string, "ffvhuff"))
+               is_ffvhuff = 1;
 
     if(!strcmp(user_codec_string, "mjpeg") || !strcmp(user_codec_string, 
"ljpeg"))
     {
@@ -362,7 +366,7 @@
                 pix_fmt);
         return TC_EXPORT_ERROR;
     }
-    if (pix_fmt == CODEC_YUV422 || is_huffyuv) {
+    if ((pix_fmt == CODEC_YUV422 && !is_ffvhuff) || is_huffyuv) {
         yuv42xP_buffer = malloc(size);
         if (!yuv42xP_buffer) {
             tc_log_error(MOD_NAME, "yuv42xP_buffer allocation failed.");
@@ -1480,7 +1484,7 @@
             break;
 
         case CODEC_YUV422:
-            if(is_huffyuv)
+            if(is_huffyuv || is_ffvhuff)
             {
                 YUV_INIT_PLANES(lavc_venc_frame->data, param->buffer,
                                 IMG_YUV422P, lavc_venc_context->width,

Reply via email to