Mercurial > mplayer.hg
changeset 3384:cff2875ad6e6
fixed framecopy
author | alex |
---|---|
date | Sat, 08 Dec 2001 12:21:23 +0000 |
parents | 1842ec5916a4 |
children | 6975a75a47fb |
files | cfg-mencoder.h mencoder.c |
diffstat | 2 files changed, 22 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/cfg-mencoder.h Sat Dec 08 11:24:32 2001 +0000 +++ b/cfg-mencoder.h Sat Dec 08 12:21:23 2001 +0000 @@ -44,7 +44,7 @@ #endif struct config ovc_conf[]={ - {"copy", &out_video_codec, CONF_TYPE_FLAG, 0, 0, 0}, + {"copy", &out_video_codec, CONF_TYPE_FLAG, 0, 0, VCODEC_COPY}, {"frameno", &out_video_codec, CONF_TYPE_FLAG, 0, 0, VCODEC_FRAMENO}, {"divx4", &out_video_codec, CONF_TYPE_FLAG, 0, 0, VCODEC_DIVX4}, {"help", "\nAvailable codecs:\n copy\n frameno\n divx4\n\n", CONF_TYPE_PRINT, CONF_NOCFG, 0, 0},
--- a/mencoder.c Sat Dec 08 11:24:32 2001 +0000 +++ b/mencoder.c Sat Dec 08 12:21:23 2001 +0000 @@ -1,4 +1,4 @@ - +#define VCODEC_COPY 0 #define VCODEC_FRAMENO 1 #define VCODEC_DIVX4 2 @@ -503,8 +503,24 @@ mux_v->codec=out_video_codec; switch(mux_v->codec){ -case 0: - mux_v->bih=sh_video->bih; +case VCODEC_COPY: + printf("sh_video->bih: %x\n", sh_video->bih); + if (sh_video->bih) + mux_v->bih=sh_video->bih; + else + { + mux_v->bih=malloc(sizeof(BITMAPINFOHEADER)); + mux_v->bih->biSize=sizeof(BITMAPINFOHEADER); + mux_v->bih->biWidth=sh_video->disp_w; + mux_v->bih->biHeight=sh_video->disp_h; + mux_v->bih->biCompression=sh_video->format; + mux_v->bih->biPlanes=1; + mux_v->bih->biBitCount=24; // FIXME!!! + mux_v->bih->biSizeImage=mux_v->bih->biWidth*mux_v->bih->biHeight*(mux_v->bih->biBitCount/8); + } + printf("videocodec: framecopy (%dx%d %dbpp fourcc=%x)\n", + mux_v->bih->biWidth, mux_v->bih->biHeight, + mux_v->bih->biBitCount, mux_v->bih->biCompression); break; case VCODEC_FRAMENO: mux_v->bih=malloc(sizeof(BITMAPINFOHEADER)); @@ -591,7 +607,7 @@ aviwrite_write_header(muxer,muxer_f); switch(mux_v->codec){ -case 0: +case VCODEC_COPY: break; case VCODEC_FRAMENO: decoded_frameno=0; @@ -792,7 +808,7 @@ switch(mux_v->codec){ -case 0: +case VCODEC_COPY: mux_v->buffer=start; if(skip_flag<=0) aviwrite_write_chunk(muxer,mux_v,muxer_f,in_size,(sh_video->ds->flags&1)?0x10:0); break;