From d07730ddd139e97d671c8670bdd73e19d3e9fcc0 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Mon, 8 Nov 2004 23:36:32 +0000 Subject: [PATCH] fix image stream copy Originally committed as revision 3662 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/avcodec.h | 3 ++- libavcodec/raw.c | 4 ++-- libavformat/utils.c | 4 +++- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index ae4c6f14c1..bb62790fb2 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -17,7 +17,7 @@ extern "C" { #define FFMPEG_VERSION_INT 0x000409 #define FFMPEG_VERSION "0.4.9-pre1" -#define LIBAVCODEC_BUILD 4728 +#define LIBAVCODEC_BUILD 4729 #define LIBAVCODEC_VERSION_INT FFMPEG_VERSION_INT #define LIBAVCODEC_VERSION FFMPEG_VERSION @@ -1996,6 +1996,7 @@ void avcodec_get_chroma_sub_sample(int pix_fmt, int *h_shift, int *v_shift); const char *avcodec_get_pix_fmt_name(int pix_fmt); void avcodec_set_dimensions(AVCodecContext *s, int width, int height); enum PixelFormat avcodec_get_pix_fmt(const char* name); +unsigned int avcodec_pix_fmt_to_codec_tag(enum PixelFormat p); #define FF_LOSS_RESOLUTION 0x0001 /* loss due to resolution change */ #define FF_LOSS_DEPTH 0x0002 /* loss due to color depth change */ diff --git a/libavcodec/raw.c b/libavcodec/raw.c index 91aba460ba..9128b1d548 100644 --- a/libavcodec/raw.c +++ b/libavcodec/raw.c @@ -64,7 +64,7 @@ static int findPixelFormat(unsigned int fourcc) return PIX_FMT_YUV420P; } -static unsigned int findFourCC(int fmt) +unsigned int avcodec_pix_fmt_to_codec_tag(enum PixelFormat fmt) { const PixelFormatTag * tags = pixelFormatTags; while (tags->pix_fmt >= 0) { @@ -152,7 +152,7 @@ static int raw_init_encoder(AVCodecContext *avctx) avctx->coded_frame->pict_type = FF_I_TYPE; avctx->coded_frame->key_frame = 1; if(!avctx->codec_tag) - avctx->codec_tag = findFourCC(avctx->pix_fmt); + avctx->codec_tag = avcodec_pix_fmt_to_codec_tag(avctx->pix_fmt); return 0; } diff --git a/libavformat/utils.c b/libavformat/utils.c index 76a80eb6d8..1699734bcd 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -1748,10 +1748,12 @@ int av_find_stream_info(AVFormatContext *ic) count++; } - /* set real frame rate info */ for(i=0;inb_streams;i++) { st = ic->streams[i]; if (st->codec.codec_type == CODEC_TYPE_VIDEO) { + if(st->codec.codec_id == CODEC_ID_RAWVIDEO && !st->codec.codec_tag) + st->codec.codec_tag= avcodec_pix_fmt_to_codec_tag(st->codec.pix_fmt); + /* set real frame rate info */ /* compute the real frame rate for telecine */ if ((st->codec.codec_id == CODEC_ID_MPEG1VIDEO || st->codec.codec_id == CODEC_ID_MPEG2VIDEO) &&