add codec_tag and codec_stream_tag to MpegEncContext to not alter avctx values
Originally committed as revision 6930 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
718eeb6a21
commit
1766295516
@ -113,7 +113,7 @@ max run: 29/41
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if 0 //3IV1 is quite rare and it slows things down a tiny bit
|
#if 0 //3IV1 is quite rare and it slows things down a tiny bit
|
||||||
#define IS_3IV1 s->avctx->codec_tag == ff_get_fourcc("3IV1")
|
#define IS_3IV1 s->codec_tag == ff_get_fourcc("3IV1")
|
||||||
#else
|
#else
|
||||||
#define IS_3IV1 0
|
#define IS_3IV1 0
|
||||||
#endif
|
#endif
|
||||||
@ -5294,7 +5294,7 @@ int h263_decode_picture_header(MpegEncContext *s)
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
#if 1
|
#if 1
|
||||||
if (s->pict_type == I_TYPE && s->avctx->codec_tag == ff_get_fourcc("ZYGO")){
|
if (s->pict_type == I_TYPE && s->codec_tag == ff_get_fourcc("ZYGO")){
|
||||||
int i,j;
|
int i,j;
|
||||||
for(i=0; i<85; i++) av_log(s->avctx, AV_LOG_DEBUG, "%d", get_bits1(&s->gb));
|
for(i=0; i<85; i++) av_log(s->avctx, AV_LOG_DEBUG, "%d", get_bits1(&s->gb));
|
||||||
av_log(s->avctx, AV_LOG_DEBUG, "\n");
|
av_log(s->avctx, AV_LOG_DEBUG, "\n");
|
||||||
@ -5619,7 +5619,7 @@ static int decode_vol_header(MpegEncContext *s, GetBitContext *gb){
|
|||||||
skip_bits1(gb); /* marker */
|
skip_bits1(gb); /* marker */
|
||||||
height = get_bits(gb, 13);
|
height = get_bits(gb, 13);
|
||||||
skip_bits1(gb); /* marker */
|
skip_bits1(gb); /* marker */
|
||||||
if(width && height && !(s->width && s->avctx->codec_tag == ff_get_fourcc("MP4S"))){ /* they should be non zero but who knows ... */
|
if(width && height && !(s->width && s->codec_tag == ff_get_fourcc("MP4S"))){ /* they should be non zero but who knows ... */
|
||||||
s->width = width;
|
s->width = width;
|
||||||
s->height = height;
|
s->height = height;
|
||||||
// printf("width/height: %d %d\n", width, height);
|
// printf("width/height: %d %d\n", width, height);
|
||||||
@ -6063,7 +6063,7 @@ int ff_mpeg4_decode_picture_header(MpegEncContext * s, GetBitContext *gb)
|
|||||||
/* search next start code */
|
/* search next start code */
|
||||||
align_get_bits(gb);
|
align_get_bits(gb);
|
||||||
|
|
||||||
if(s->avctx->codec_tag == ff_get_fourcc("WV1F") && show_bits(gb, 24) == 0x575630){
|
if(s->codec_tag == ff_get_fourcc("WV1F") && show_bits(gb, 24) == 0x575630){
|
||||||
skip_bits(gb, 24);
|
skip_bits(gb, 24);
|
||||||
if(get_bits(gb, 8) == 0xF0)
|
if(get_bits(gb, 8) == 0xF0)
|
||||||
return decode_vop_header(s, gb);
|
return decode_vop_header(s, gb);
|
||||||
|
@ -518,19 +518,19 @@ retry:
|
|||||||
avctx->has_b_frames= !s->low_delay;
|
avctx->has_b_frames= !s->low_delay;
|
||||||
|
|
||||||
if(s->xvid_build==0 && s->divx_version==0 && s->lavc_build==0){
|
if(s->xvid_build==0 && s->divx_version==0 && s->lavc_build==0){
|
||||||
if(s->avctx->stream_codec_tag == ff_get_fourcc("XVID") ||
|
if(s->stream_codec_tag == ff_get_fourcc("XVID") ||
|
||||||
s->avctx->codec_tag == ff_get_fourcc("XVID") || s->avctx->codec_tag == ff_get_fourcc("XVIX") ||
|
s->codec_tag == ff_get_fourcc("XVID") || s->codec_tag == ff_get_fourcc("XVIX") ||
|
||||||
s->avctx->codec_tag == ff_get_fourcc("RMP4"))
|
s->codec_tag == ff_get_fourcc("RMP4"))
|
||||||
s->xvid_build= -1;
|
s->xvid_build= -1;
|
||||||
#if 0
|
#if 0
|
||||||
if(s->avctx->codec_tag == ff_get_fourcc("DIVX") && s->vo_type==0 && s->vol_control_parameters==1
|
if(s->codec_tag == ff_get_fourcc("DIVX") && s->vo_type==0 && s->vol_control_parameters==1
|
||||||
&& s->padding_bug_score > 0 && s->low_delay) // XVID with modified fourcc
|
&& s->padding_bug_score > 0 && s->low_delay) // XVID with modified fourcc
|
||||||
s->xvid_build= -1;
|
s->xvid_build= -1;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
if(s->xvid_build==0 && s->divx_version==0 && s->lavc_build==0){
|
if(s->xvid_build==0 && s->divx_version==0 && s->lavc_build==0){
|
||||||
if(s->avctx->codec_tag == ff_get_fourcc("DIVX") && s->vo_type==0 && s->vol_control_parameters==0)
|
if(s->codec_tag == ff_get_fourcc("DIVX") && s->vo_type==0 && s->vol_control_parameters==0)
|
||||||
s->divx_version= 400; //divx 4
|
s->divx_version= 400; //divx 4
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -540,10 +540,10 @@ retry:
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(s->workaround_bugs&FF_BUG_AUTODETECT){
|
if(s->workaround_bugs&FF_BUG_AUTODETECT){
|
||||||
if(s->avctx->codec_tag == ff_get_fourcc("XVIX"))
|
if(s->codec_tag == ff_get_fourcc("XVIX"))
|
||||||
s->workaround_bugs|= FF_BUG_XVID_ILACE;
|
s->workaround_bugs|= FF_BUG_XVID_ILACE;
|
||||||
|
|
||||||
if(s->avctx->codec_tag == ff_get_fourcc("UMP4")){
|
if(s->codec_tag == ff_get_fourcc("UMP4")){
|
||||||
s->workaround_bugs|= FF_BUG_UMP4;
|
s->workaround_bugs|= FF_BUG_UMP4;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -698,12 +698,12 @@ int MPV_common_init(MpegEncContext *s)
|
|||||||
yc_size = y_size + 2 * c_size;
|
yc_size = y_size + 2 * c_size;
|
||||||
|
|
||||||
/* convert fourcc to upper case */
|
/* convert fourcc to upper case */
|
||||||
s->avctx->codec_tag= toupper( s->avctx->codec_tag &0xFF)
|
s->codec_tag= toupper( s->avctx->codec_tag &0xFF)
|
||||||
+ (toupper((s->avctx->codec_tag>>8 )&0xFF)<<8 )
|
+ (toupper((s->avctx->codec_tag>>8 )&0xFF)<<8 )
|
||||||
+ (toupper((s->avctx->codec_tag>>16)&0xFF)<<16)
|
+ (toupper((s->avctx->codec_tag>>16)&0xFF)<<16)
|
||||||
+ (toupper((s->avctx->codec_tag>>24)&0xFF)<<24);
|
+ (toupper((s->avctx->codec_tag>>24)&0xFF)<<24);
|
||||||
|
|
||||||
s->avctx->stream_codec_tag= toupper( s->avctx->stream_codec_tag &0xFF)
|
s->stream_codec_tag= toupper( s->avctx->stream_codec_tag &0xFF)
|
||||||
+ (toupper((s->avctx->stream_codec_tag>>8 )&0xFF)<<8 )
|
+ (toupper((s->avctx->stream_codec_tag>>8 )&0xFF)<<8 )
|
||||||
+ (toupper((s->avctx->stream_codec_tag>>16)&0xFF)<<16)
|
+ (toupper((s->avctx->stream_codec_tag>>16)&0xFF)<<16)
|
||||||
+ (toupper((s->avctx->stream_codec_tag>>24)&0xFF)<<24);
|
+ (toupper((s->avctx->stream_codec_tag>>24)&0xFF)<<24);
|
||||||
|
@ -225,6 +225,8 @@ typedef struct MpegEncContext {
|
|||||||
int chroma_elim_threshold;
|
int chroma_elim_threshold;
|
||||||
int strict_std_compliance; ///< strictly follow the std (MPEG4, ...)
|
int strict_std_compliance; ///< strictly follow the std (MPEG4, ...)
|
||||||
int workaround_bugs; ///< workaround bugs in encoders which cannot be detected automatically
|
int workaround_bugs; ///< workaround bugs in encoders which cannot be detected automatically
|
||||||
|
int codec_tag; ///< internal codec_tag upper case converted from avctx codec_tag
|
||||||
|
int stream_codec_tag; ///< internal stream_codec_tag upper case converted from avctx stream_codec_tag
|
||||||
/* the following fields are managed internally by the encoder */
|
/* the following fields are managed internally by the encoder */
|
||||||
|
|
||||||
/** bit output */
|
/** bit output */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user