Originally committed as revision 17564 to svn://svn.ffmpeg.org/ffmpeg/trunktags/v0.5
@@ -52,7 +52,7 @@ av_cold int ff_h263_decode_init(AVCodecContext *avctx) | |||||
s->quant_precision=5; | s->quant_precision=5; | ||||
s->decode_mb= ff_h263_decode_mb; | s->decode_mb= ff_h263_decode_mb; | ||||
s->low_delay= 1; | s->low_delay= 1; | ||||
avctx->pix_fmt= PIX_FMT_YUV420P; | |||||
avctx->pix_fmt= avctx->get_format(avctx, avctx->codec->pix_fmts); | |||||
s->unrestricted_mv= 1; | s->unrestricted_mv= 1; | ||||
/* select sub codec */ | /* select sub codec */ | ||||
@@ -725,6 +725,7 @@ AVCodec mpeg4_decoder = { | |||||
CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1 | CODEC_CAP_TRUNCATED | CODEC_CAP_DELAY, | CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1 | CODEC_CAP_TRUNCATED | CODEC_CAP_DELAY, | ||||
.flush= ff_mpeg_flush, | .flush= ff_mpeg_flush, | ||||
.long_name= NULL_IF_CONFIG_SMALL("MPEG-4 part 2"), | .long_name= NULL_IF_CONFIG_SMALL("MPEG-4 part 2"), | ||||
.pix_fmts= ff_pixfmt_list_420, | |||||
}; | }; | ||||
AVCodec h263_decoder = { | AVCodec h263_decoder = { | ||||
@@ -739,6 +740,7 @@ AVCodec h263_decoder = { | |||||
CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1 | CODEC_CAP_TRUNCATED | CODEC_CAP_DELAY, | CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1 | CODEC_CAP_TRUNCATED | CODEC_CAP_DELAY, | ||||
.flush= ff_mpeg_flush, | .flush= ff_mpeg_flush, | ||||
.long_name= NULL_IF_CONFIG_SMALL("H.263 / H.263-1996, H.263+ / H.263-1998"), | .long_name= NULL_IF_CONFIG_SMALL("H.263 / H.263-1996, H.263+ / H.263-1998"), | ||||
.pix_fmts= ff_pixfmt_list_420, | |||||
}; | }; | ||||
AVCodec msmpeg4v1_decoder = { | AVCodec msmpeg4v1_decoder = { | ||||
@@ -752,6 +754,7 @@ AVCodec msmpeg4v1_decoder = { | |||||
ff_h263_decode_frame, | ff_h263_decode_frame, | ||||
CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1, | CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1, | ||||
.long_name= NULL_IF_CONFIG_SMALL("MPEG-4 part 2 Microsoft variant version 1"), | .long_name= NULL_IF_CONFIG_SMALL("MPEG-4 part 2 Microsoft variant version 1"), | ||||
.pix_fmts= ff_pixfmt_list_420, | |||||
}; | }; | ||||
AVCodec msmpeg4v2_decoder = { | AVCodec msmpeg4v2_decoder = { | ||||
@@ -765,6 +768,7 @@ AVCodec msmpeg4v2_decoder = { | |||||
ff_h263_decode_frame, | ff_h263_decode_frame, | ||||
CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1, | CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1, | ||||
.long_name= NULL_IF_CONFIG_SMALL("MPEG-4 part 2 Microsoft variant version 2"), | .long_name= NULL_IF_CONFIG_SMALL("MPEG-4 part 2 Microsoft variant version 2"), | ||||
.pix_fmts= ff_pixfmt_list_420, | |||||
}; | }; | ||||
AVCodec msmpeg4v3_decoder = { | AVCodec msmpeg4v3_decoder = { | ||||
@@ -778,6 +782,7 @@ AVCodec msmpeg4v3_decoder = { | |||||
ff_h263_decode_frame, | ff_h263_decode_frame, | ||||
CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1, | CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1, | ||||
.long_name= NULL_IF_CONFIG_SMALL("MPEG-4 part 2 Microsoft variant version 3"), | .long_name= NULL_IF_CONFIG_SMALL("MPEG-4 part 2 Microsoft variant version 3"), | ||||
.pix_fmts= ff_pixfmt_list_420, | |||||
}; | }; | ||||
AVCodec wmv1_decoder = { | AVCodec wmv1_decoder = { | ||||
@@ -791,6 +796,7 @@ AVCodec wmv1_decoder = { | |||||
ff_h263_decode_frame, | ff_h263_decode_frame, | ||||
CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1, | CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1, | ||||
.long_name= NULL_IF_CONFIG_SMALL("Windows Media Video 7"), | .long_name= NULL_IF_CONFIG_SMALL("Windows Media Video 7"), | ||||
.pix_fmts= ff_pixfmt_list_420, | |||||
}; | }; | ||||
AVCodec h263i_decoder = { | AVCodec h263i_decoder = { | ||||
@@ -804,6 +810,7 @@ AVCodec h263i_decoder = { | |||||
ff_h263_decode_frame, | ff_h263_decode_frame, | ||||
CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1, | CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1, | ||||
.long_name = NULL_IF_CONFIG_SMALL("Intel H.263"), | .long_name = NULL_IF_CONFIG_SMALL("Intel H.263"), | ||||
.pix_fmts= ff_pixfmt_list_420, | |||||
}; | }; | ||||
AVCodec flv_decoder = { | AVCodec flv_decoder = { | ||||
@@ -817,4 +824,5 @@ AVCodec flv_decoder = { | |||||
ff_h263_decode_frame, | ff_h263_decode_frame, | ||||
CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1, | CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1, | ||||
.long_name= NULL_IF_CONFIG_SMALL("Flash Video"), | .long_name= NULL_IF_CONFIG_SMALL("Flash Video"), | ||||
.pix_fmts= ff_pixfmt_list_420, | |||||
}; | }; |
@@ -2178,12 +2178,10 @@ static av_cold int decode_init(AVCodecContext *avctx){ | |||||
s->quarter_sample = 1; | s->quarter_sample = 1; | ||||
s->low_delay= 1; | s->low_delay= 1; | ||||
if(avctx->codec_id == CODEC_ID_SVQ3) | |||||
avctx->pix_fmt= PIX_FMT_YUVJ420P; | |||||
else if(s->avctx->codec->capabilities&CODEC_CAP_HWACCEL_VDPAU) | |||||
if(s->avctx->codec->capabilities&CODEC_CAP_HWACCEL_VDPAU) | |||||
avctx->pix_fmt= PIX_FMT_VDPAU_H264; | avctx->pix_fmt= PIX_FMT_VDPAU_H264; | ||||
else | else | ||||
avctx->pix_fmt= PIX_FMT_YUV420P; | |||||
avctx->pix_fmt= avctx->get_format(avctx, avctx->codec->pix_fmts); | |||||
decode_init_vlc(); | decode_init_vlc(); | ||||
@@ -8097,6 +8095,7 @@ AVCodec h264_decoder = { | |||||
/*CODEC_CAP_DRAW_HORIZ_BAND |*/ CODEC_CAP_DR1 | CODEC_CAP_DELAY, | /*CODEC_CAP_DRAW_HORIZ_BAND |*/ CODEC_CAP_DR1 | CODEC_CAP_DELAY, | ||||
.flush= flush_dpb, | .flush= flush_dpb, | ||||
.long_name = NULL_IF_CONFIG_SMALL("H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10"), | .long_name = NULL_IF_CONFIG_SMALL("H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10"), | ||||
.pix_fmts= ff_pixfmt_list_420, | |||||
}; | }; | ||||
#if CONFIG_H264_VDPAU_DECODER | #if CONFIG_H264_VDPAU_DECODER | ||||
@@ -75,6 +75,10 @@ const uint8_t ff_mpeg1_dc_scale_table[128]={ | |||||
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, | 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, | ||||
}; | }; | ||||
const enum PixelFormat ff_pixfmt_list_420[] = { | |||||
PIX_FMT_YUV420P, | |||||
PIX_FMT_NONE | |||||
}; | |||||
const uint8_t *ff_find_start_code(const uint8_t * restrict p, const uint8_t *end, uint32_t * restrict state){ | const uint8_t *ff_find_start_code(const uint8_t * restrict p, const uint8_t *end, uint32_t * restrict state){ | ||||
int i; | int i; | ||||
@@ -708,6 +708,8 @@ void ff_convert_matrix(DSPContext *dsp, int (*qmat)[64], uint16_t (*qmat16)[2][6 | |||||
void ff_init_block_index(MpegEncContext *s); | void ff_init_block_index(MpegEncContext *s); | ||||
void ff_copy_picture(Picture *dst, Picture *src); | void ff_copy_picture(Picture *dst, Picture *src); | ||||
extern const enum PixelFormat ff_pixfmt_list_420[]; | |||||
static inline void ff_update_block_index(MpegEncContext *s){ | static inline void ff_update_block_index(MpegEncContext *s){ | ||||
const int block_size= 8>>s->avctx->lowres; | const int block_size= 8>>s->avctx->lowres; | ||||
@@ -794,6 +794,7 @@ AVCodec rv10_decoder = { | |||||
rv10_decode_frame, | rv10_decode_frame, | ||||
CODEC_CAP_DR1, | CODEC_CAP_DR1, | ||||
.long_name = NULL_IF_CONFIG_SMALL("RealVideo 1.0"), | .long_name = NULL_IF_CONFIG_SMALL("RealVideo 1.0"), | ||||
.pix_fmts= ff_pixfmt_list_420, | |||||
}; | }; | ||||
AVCodec rv20_decoder = { | AVCodec rv20_decoder = { | ||||
@@ -808,5 +809,6 @@ AVCodec rv20_decoder = { | |||||
CODEC_CAP_DR1 | CODEC_CAP_DELAY, | CODEC_CAP_DR1 | CODEC_CAP_DELAY, | ||||
.flush= ff_mpeg_flush, | .flush= ff_mpeg_flush, | ||||
.long_name = NULL_IF_CONFIG_SMALL("RealVideo 2.0"), | .long_name = NULL_IF_CONFIG_SMALL("RealVideo 2.0"), | ||||
.pix_fmts= ff_pixfmt_list_420, | |||||
}; | }; | ||||
@@ -278,4 +278,5 @@ AVCodec rv30_decoder = { | |||||
CODEC_CAP_DR1 | CODEC_CAP_DELAY, | CODEC_CAP_DR1 | CODEC_CAP_DELAY, | ||||
.flush = ff_mpeg_flush, | .flush = ff_mpeg_flush, | ||||
.long_name = NULL_IF_CONFIG_SMALL("RealVideo 3.0"), | .long_name = NULL_IF_CONFIG_SMALL("RealVideo 3.0"), | ||||
.pix_fmts= ff_pixfmt_list_420, | |||||
}; | }; |
@@ -656,4 +656,5 @@ AVCodec rv40_decoder = { | |||||
CODEC_CAP_DR1 | CODEC_CAP_DELAY, | CODEC_CAP_DR1 | CODEC_CAP_DELAY, | ||||
.flush = ff_mpeg_flush, | .flush = ff_mpeg_flush, | ||||
.long_name = NULL_IF_CONFIG_SMALL("RealVideo 4.0"), | .long_name = NULL_IF_CONFIG_SMALL("RealVideo 4.0"), | ||||
.pix_fmts= ff_pixfmt_list_420, | |||||
}; | }; |
@@ -1050,4 +1050,5 @@ AVCodec svq3_decoder = { | |||||
svq3_decode_frame, | svq3_decode_frame, | ||||
CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1 | CODEC_CAP_DELAY, | CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1 | CODEC_CAP_DELAY, | ||||
.long_name = NULL_IF_CONFIG_SMALL("Sorenson Vector Quantizer 3"), | .long_name = NULL_IF_CONFIG_SMALL("Sorenson Vector Quantizer 3"), | ||||
.pix_fmts= (enum PixelFormat[]){PIX_FMT_YUV410P, PIX_FMT_NONE}, | |||||
}; | }; |
@@ -494,4 +494,5 @@ AVCodec wmv2_decoder = { | |||||
ff_h263_decode_frame, | ff_h263_decode_frame, | ||||
CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1, | CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1, | ||||
.long_name = NULL_IF_CONFIG_SMALL("Windows Media Video 8"), | .long_name = NULL_IF_CONFIG_SMALL("Windows Media Video 8"), | ||||
.pix_fmts= ff_pixfmt_list_420, | |||||
}; | }; |