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,