# HG changeset patch # User alex # Date 1005447290 0 # Node ID cc93d97869543b8898ea85ecb8590bb460bc4334 # Parent 190e713d8e074cc838d2761866b79380088d54dd added support for -tv outfmt diff -r 190e713d8e07 -r cc93d9786954 libmpdemux/tv.c --- a/libmpdemux/tv.c Sun Nov 11 02:54:21 2001 +0000 +++ b/libmpdemux/tv.c Sun Nov 11 02:54:50 2001 +0000 @@ -31,6 +31,7 @@ int tv_param_width = -1; int tv_param_height = -1; int tv_param_input = 0; /* used in v4l and bttv */ +char *tv_param_outfmt = "yv12"; /* ================== DEMUX_TV ===================== */ @@ -95,8 +96,24 @@ sh_video = new_sh_video(demuxer, 0); - /* hack to use YUV 4:2:0 format ;) */ - sh_video->format = IMGFMT_UYVY; + if (!strcasecmp(tv_param_outfmt, "yv12")) + sh_video->format = IMGFMT_YV12; + else if (!strcasecmp(tv_param_outfmt, "uyvy")) + sh_video->format = IMGFMT_UYVY; + else if (!strcasecmp(tv_param_outfmt, "rgb32")) + sh_video->format = IMGFMT_RGB32; + else if (!strcasecmp(tv_param_outfmt, "rgb24")) + sh_video->format = IMGFMT_RGB24; + else if (!strcasecmp(tv_param_outfmt, "rgb16")) + sh_video->format = IMGFMT_RGB16; + else if (!strcasecmp(tv_param_outfmt, "rgb15")) + sh_video->format = IMGFMT_RGB15; + else + { + printf("Unknown format given: %s\n", tv_param_outfmt); + printf("Using default: Planar YV12\n"); + sh_video->format = IMGFMT_YV12; + } funcs->control(tvh->priv, TVI_CONTROL_VID_SET_FORMAT, &sh_video->format); /* get IMGFMT_ */ @@ -185,7 +202,7 @@ case AFMT_MPEG: case AFMT_AC3: default: - printf("%s unsupported!\n", audio_out_format_name(audio_format)); +// printf("%s unsupported!\n", audio_out_format_name(audio_format)); goto no_audio; } diff -r 190e713d8e07 -r cc93d9786954 libmpdemux/tv.h --- a/libmpdemux/tv.h Sun Nov 11 02:54:21 2001 +0000 +++ b/libmpdemux/tv.h Sun Nov 11 02:54:50 2001 +0000 @@ -3,6 +3,7 @@ #ifdef USE_TV #include "../libao2/afmt.h" #include "../libvo/img_format.h" +#include "../libvo/fastmemcpy.h" extern unsigned long tv_param_freq; extern char *tv_param_channel; @@ -13,6 +14,7 @@ extern int tv_param_width; extern int tv_param_height; extern int tv_param_input; +extern char *tv_param_outfmt; typedef struct tvi_info_s {