Originally committed as revision 16654 to svn://svn.ffmpeg.org/ffmpeg/trunktags/v0.5
| @@ -36,6 +36,7 @@ | |||||
| #include "libavformat/rtsp.h" | #include "libavformat/rtsp.h" | ||||
| #include "libavutil/avstring.h" | #include "libavutil/avstring.h" | ||||
| #include "libavutil/random.h" | #include "libavutil/random.h" | ||||
| #include "libavutil/intreadwrite.h" | |||||
| #include "libavcodec/opt.h" | #include "libavcodec/opt.h" | ||||
| #include <stdarg.h> | #include <stdarg.h> | ||||
| #include <unistd.h> | #include <unistd.h> | ||||
| @@ -4187,7 +4188,7 @@ static int parse_ffconfig(const char *filename) | |||||
| } else if (!strcasecmp(cmd, "VideoTag")) { | } else if (!strcasecmp(cmd, "VideoTag")) { | ||||
| get_arg(arg, sizeof(arg), &p); | get_arg(arg, sizeof(arg), &p); | ||||
| if ((strlen(arg) == 4) && stream) | if ((strlen(arg) == 4) && stream) | ||||
| video_enc.codec_tag = ff_get_fourcc(arg); | |||||
| video_enc.codec_tag = AV_RL32(arg); | |||||
| } else if (!strcasecmp(cmd, "BitExact")) { | } else if (!strcasecmp(cmd, "BitExact")) { | ||||
| if (stream) | if (stream) | ||||
| video_enc.flags |= CODEC_FLAG_BITEXACT; | video_enc.flags |= CODEC_FLAG_BITEXACT; | ||||
| @@ -689,7 +689,7 @@ static int decode_frame(AVCodecContext *avctx, | |||||
| av_log(f->avctx, AV_LOG_ERROR, "size mismatch %d %d\n", buf_size, AV_RL32(buf+4)); | av_log(f->avctx, AV_LOG_ERROR, "size mismatch %d %d\n", buf_size, AV_RL32(buf+4)); | ||||
| } | } | ||||
| if(frame_4cc == ff_get_fourcc("cfrm")){ | |||||
| if(frame_4cc == AV_RL32("cfrm")){ | |||||
| int free_index=-1; | int free_index=-1; | ||||
| const int data_size= buf_size - 20; | const int data_size= buf_size - 20; | ||||
| const int id= AV_RL32(buf+12); | const int id= AV_RL32(buf+12); | ||||
| @@ -730,7 +730,7 @@ static int decode_frame(AVCodecContext *avctx, | |||||
| } | } | ||||
| cfrm->size= cfrm->id= 0; | cfrm->size= cfrm->id= 0; | ||||
| frame_4cc= ff_get_fourcc("pfrm"); | |||||
| frame_4cc= AV_RL32("pfrm"); | |||||
| }else | }else | ||||
| return buf_size; | return buf_size; | ||||
| }else{ | }else{ | ||||
| @@ -756,19 +756,19 @@ static int decode_frame(AVCodecContext *avctx, | |||||
| return -1; | return -1; | ||||
| } | } | ||||
| if(frame_4cc == ff_get_fourcc("ifr2")){ | |||||
| if(frame_4cc == AV_RL32("ifr2")){ | |||||
| p->pict_type= FF_I_TYPE; | p->pict_type= FF_I_TYPE; | ||||
| if(decode_i2_frame(f, buf-4, frame_size) < 0) | if(decode_i2_frame(f, buf-4, frame_size) < 0) | ||||
| return -1; | return -1; | ||||
| }else if(frame_4cc == ff_get_fourcc("ifrm")){ | |||||
| }else if(frame_4cc == AV_RL32("ifrm")){ | |||||
| p->pict_type= FF_I_TYPE; | p->pict_type= FF_I_TYPE; | ||||
| if(decode_i_frame(f, buf, frame_size) < 0) | if(decode_i_frame(f, buf, frame_size) < 0) | ||||
| return -1; | return -1; | ||||
| }else if(frame_4cc == ff_get_fourcc("pfrm") || frame_4cc == ff_get_fourcc("pfr2")){ | |||||
| }else if(frame_4cc == AV_RL32("pfrm") || frame_4cc == AV_RL32("pfr2")){ | |||||
| p->pict_type= FF_P_TYPE; | p->pict_type= FF_P_TYPE; | ||||
| if(decode_p_frame(f, buf, frame_size) < 0) | if(decode_p_frame(f, buf, frame_size) < 0) | ||||
| return -1; | return -1; | ||||
| }else if(frame_4cc == ff_get_fourcc("snd_")){ | |||||
| }else if(frame_4cc == AV_RL32("snd_")){ | |||||
| av_log(avctx, AV_LOG_ERROR, "ignoring snd_ chunk length:%d\n", buf_size); | av_log(avctx, AV_LOG_ERROR, "ignoring snd_ chunk length:%d\n", buf_size); | ||||
| }else{ | }else{ | ||||
| av_log(avctx, AV_LOG_ERROR, "ignoring unknown chunk length:%d\n", buf_size); | av_log(avctx, AV_LOG_ERROR, "ignoring unknown chunk length:%d\n", buf_size); | ||||
| @@ -584,7 +584,7 @@ static av_cold int encode_init(AVCodecContext *avctx){ | |||||
| avctx->extradata= av_mallocz(8); | avctx->extradata= av_mallocz(8); | ||||
| avctx->extradata_size=8; | avctx->extradata_size=8; | ||||
| ((uint32_t*)avctx->extradata)[0]= le2me_32(a->inv_qscale); | ((uint32_t*)avctx->extradata)[0]= le2me_32(a->inv_qscale); | ||||
| ((uint32_t*)avctx->extradata)[1]= le2me_32(ff_get_fourcc("ASUS")); | |||||
| ((uint32_t*)avctx->extradata)[1]= le2me_32(AV_RL32("ASUS")); | |||||
| for(i=0; i<64; i++){ | for(i=0; i<64; i++){ | ||||
| int q= 32*scale*ff_mpeg1_default_intra_matrix[i]; | int q= 32*scale*ff_mpeg1_default_intra_matrix[i]; | ||||
| @@ -114,7 +114,7 @@ max run: 29/41 | |||||
| static uint8_t static_rl_table_store[5][2][2*MAX_RUN + MAX_LEVEL + 3]; | static uint8_t static_rl_table_store[5][2][2*MAX_RUN + MAX_LEVEL + 3]; | ||||
| #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->codec_tag == ff_get_fourcc("3IV1") | |||||
| #define IS_3IV1 s->codec_tag == AV_RL32("3IV1") | |||||
| #else | #else | ||||
| #define IS_3IV1 0 | #define IS_3IV1 0 | ||||
| #endif | #endif | ||||
| @@ -5223,7 +5223,7 @@ int h263_decode_picture_header(MpegEncContext *s) | |||||
| show_pict_info(s); | show_pict_info(s); | ||||
| } | } | ||||
| #if 1 | #if 1 | ||||
| if (s->pict_type == FF_I_TYPE && s->codec_tag == ff_get_fourcc("ZYGO")){ | |||||
| if (s->pict_type == FF_I_TYPE && s->codec_tag == AV_RL32("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"); | ||||
| @@ -5548,7 +5548,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->codec_tag == ff_get_fourcc("MP4S"))){ /* they should be non zero but who knows ... */ | |||||
| if(width && height && !(s->width && s->codec_tag == AV_RL32("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); | ||||
| @@ -6062,7 +6062,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->codec_tag == ff_get_fourcc("WV1F") && show_bits(gb, 24) == 0x575630){ | |||||
| if(s->codec_tag == AV_RL32("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) | ||||
| goto end; | goto end; | ||||
| @@ -421,19 +421,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->stream_codec_tag == ff_get_fourcc("XVID") || | |||||
| s->codec_tag == ff_get_fourcc("XVID") || s->codec_tag == ff_get_fourcc("XVIX") || | |||||
| s->codec_tag == ff_get_fourcc("RMP4")) | |||||
| if(s->stream_codec_tag == AV_RL32("XVID") || | |||||
| s->codec_tag == AV_RL32("XVID") || s->codec_tag == AV_RL32("XVIX") || | |||||
| s->codec_tag == AV_RL32("RMP4")) | |||||
| s->xvid_build= -1; | s->xvid_build= -1; | ||||
| #if 0 | #if 0 | ||||
| if(s->codec_tag == ff_get_fourcc("DIVX") && s->vo_type==0 && s->vol_control_parameters==1 | |||||
| if(s->codec_tag == AV_RL32("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->codec_tag == ff_get_fourcc("DIVX") && s->vo_type==0 && s->vol_control_parameters==0) | |||||
| if(s->codec_tag == AV_RL32("DIVX") && s->vo_type==0 && s->vol_control_parameters==0) | |||||
| s->divx_version= 400; //divx 4 | s->divx_version= 400; //divx 4 | ||||
| } | } | ||||
| @@ -443,10 +443,10 @@ retry: | |||||
| } | } | ||||
| if(s->workaround_bugs&FF_BUG_AUTODETECT){ | if(s->workaround_bugs&FF_BUG_AUTODETECT){ | ||||
| if(s->codec_tag == ff_get_fourcc("XVIX")) | |||||
| if(s->codec_tag == AV_RL32("XVIX")) | |||||
| s->workaround_bugs|= FF_BUG_XVID_ILACE; | s->workaround_bugs|= FF_BUG_XVID_ILACE; | ||||
| if(s->codec_tag == ff_get_fourcc("UMP4")){ | |||||
| if(s->codec_tag == AV_RL32("UMP4")){ | |||||
| s->workaround_bugs|= FF_BUG_UMP4; | s->workaround_bugs|= FF_BUG_UMP4; | ||||
| } | } | ||||
| @@ -335,7 +335,7 @@ av_cold int ff_xvid_encode_init(AVCodecContext *avctx) { | |||||
| /* We are claiming to be Xvid */ | /* We are claiming to be Xvid */ | ||||
| x->quicktime_format = 0; | x->quicktime_format = 0; | ||||
| if(!avctx->codec_tag) | if(!avctx->codec_tag) | ||||
| avctx->codec_tag = ff_get_fourcc("xvid"); | |||||
| avctx->codec_tag = AV_RL32("xvid"); | |||||
| } | } | ||||
| /* Bframes */ | /* Bframes */ | ||||
| @@ -73,7 +73,7 @@ static int mjpega_dump_header(AVBitStreamFilterContext *bsfc, AVCodecContext *av | |||||
| *poutbuf_size = poutbufp - *poutbuf; | *poutbuf_size = poutbufp - *poutbuf; | ||||
| return 1; | return 1; | ||||
| case APP1: | case APP1: | ||||
| if (i + 8 < buf_size && AV_RL32(buf + i + 8) == ff_get_fourcc("mjpg")) { | |||||
| if (i + 8 < buf_size && AV_RL32(buf + i + 8) == AV_RL32("mjpg")) { | |||||
| av_log(avctx, AV_LOG_ERROR, "bitstream already formatted\n"); | av_log(avctx, AV_LOG_ERROR, "bitstream already formatted\n"); | ||||
| memcpy(*poutbuf, buf, buf_size); | memcpy(*poutbuf, buf, buf_size); | ||||
| *poutbuf_size = buf_size; | *poutbuf_size = buf_size; | ||||
| @@ -1040,7 +1040,7 @@ static int mjpeg_decode_app(MJpegDecodeContext *s) | |||||
| /* buggy AVID, it puts EOI only at every 10th frame */ | /* buggy AVID, it puts EOI only at every 10th frame */ | ||||
| /* also this fourcc is used by non-avid files too, it holds some | /* also this fourcc is used by non-avid files too, it holds some | ||||
| informations, but it's always present in AVID creates files */ | informations, but it's always present in AVID creates files */ | ||||
| if (id == ff_get_fourcc("AVI1")) | |||||
| if (id == AV_RL32("AVI1")) | |||||
| { | { | ||||
| /* structure: | /* structure: | ||||
| 4bytes AVI1 | 4bytes AVI1 | ||||
| @@ -1068,7 +1068,7 @@ static int mjpeg_decode_app(MJpegDecodeContext *s) | |||||
| // len -= 2; | // len -= 2; | ||||
| if (id == ff_get_fourcc("JFIF")) | |||||
| if (id == AV_RL32("JFIF")) | |||||
| { | { | ||||
| int t_w, t_h, v1, v2; | int t_w, t_h, v1, v2; | ||||
| skip_bits(&s->gb, 8); /* the trailing zero-byte */ | skip_bits(&s->gb, 8); /* the trailing zero-byte */ | ||||
| @@ -1098,7 +1098,7 @@ static int mjpeg_decode_app(MJpegDecodeContext *s) | |||||
| goto out; | goto out; | ||||
| } | } | ||||
| if (id == ff_get_fourcc("Adob") && (get_bits(&s->gb, 8) == 'e')) | |||||
| if (id == AV_RL32("Adob") && (get_bits(&s->gb, 8) == 'e')) | |||||
| { | { | ||||
| if (s->avctx->debug & FF_DEBUG_PICT_INFO) | if (s->avctx->debug & FF_DEBUG_PICT_INFO) | ||||
| av_log(s->avctx, AV_LOG_INFO, "mjpeg: Adobe header found\n"); | av_log(s->avctx, AV_LOG_INFO, "mjpeg: Adobe header found\n"); | ||||
| @@ -1110,7 +1110,7 @@ static int mjpeg_decode_app(MJpegDecodeContext *s) | |||||
| goto out; | goto out; | ||||
| } | } | ||||
| if (id == ff_get_fourcc("LJIF")){ | |||||
| if (id == AV_RL32("LJIF")){ | |||||
| if (s->avctx->debug & FF_DEBUG_PICT_INFO) | if (s->avctx->debug & FF_DEBUG_PICT_INFO) | ||||
| av_log(s->avctx, AV_LOG_INFO, "Pegasus lossless jpeg header found\n"); | av_log(s->avctx, AV_LOG_INFO, "Pegasus lossless jpeg header found\n"); | ||||
| skip_bits(&s->gb, 16); /* version ? */ | skip_bits(&s->gb, 16); /* version ? */ | ||||
| @@ -1139,7 +1139,7 @@ static int mjpeg_decode_app(MJpegDecodeContext *s) | |||||
| id = (get_bits(&s->gb, 16) << 16) | get_bits(&s->gb, 16); | id = (get_bits(&s->gb, 16) << 16) | get_bits(&s->gb, 16); | ||||
| id = be2me_32(id); | id = be2me_32(id); | ||||
| len -= 4; | len -= 4; | ||||
| if (id == ff_get_fourcc("mjpg")) /* Apple MJPEG-A */ | |||||
| if (id == AV_RL32("mjpg")) /* Apple MJPEG-A */ | |||||
| { | { | ||||
| #if 0 | #if 0 | ||||
| skip_bits(&s->gb, 32); /* field size */ | skip_bits(&s->gb, 32); /* field size */ | ||||
| @@ -2278,7 +2278,7 @@ static int mpeg_decode_frame(AVCodecContext *avctx, | |||||
| } | } | ||||
| #endif | #endif | ||||
| if(s->mpeg_enc_ctx_allocated==0 && avctx->codec_tag == ff_get_fourcc("VCR2")) | |||||
| if(s->mpeg_enc_ctx_allocated==0 && avctx->codec_tag == AV_RL32("VCR2")) | |||||
| vcr2_init_sequence(avctx); | vcr2_init_sequence(avctx); | ||||
| s->slice_count= 0; | s->slice_count= 0; | ||||
| @@ -305,7 +305,7 @@ static int shorten_decode_frame(AVCodecContext *avctx, | |||||
| { | { | ||||
| int maxnlpc = 0; | int maxnlpc = 0; | ||||
| /* shorten signature */ | /* shorten signature */ | ||||
| if (get_bits_long(&s->gb, 32) != bswap_32(ff_get_fourcc("ajkg"))) { | |||||
| if (get_bits_long(&s->gb, 32) != bswap_32(AV_RL32("ajkg"))) { | |||||
| av_log(s->avctx, AV_LOG_ERROR, "missing shorten magic 'ajkg'\n"); | av_log(s->avctx, AV_LOG_ERROR, "missing shorten magic 'ajkg'\n"); | ||||
| return -1; | return -1; | ||||
| } | } | ||||
| @@ -209,11 +209,11 @@ static av_cold int tta_decode_init(AVCodecContext * avctx) | |||||
| return -1; | return -1; | ||||
| init_get_bits(&s->gb, avctx->extradata, avctx->extradata_size); | init_get_bits(&s->gb, avctx->extradata, avctx->extradata_size); | ||||
| if (show_bits_long(&s->gb, 32) == ff_get_fourcc("TTA1")) | |||||
| if (show_bits_long(&s->gb, 32) == AV_RL32("TTA1")) | |||||
| { | { | ||||
| /* signature */ | /* signature */ | ||||
| skip_bits(&s->gb, 32); | skip_bits(&s->gb, 32); | ||||
| // if (get_bits_long(&s->gb, 32) != bswap_32(ff_get_fourcc("TTA1"))) { | |||||
| // if (get_bits_long(&s->gb, 32) != bswap_32(AV_RL32("TTA1"))) { | |||||
| // av_log(s->avctx, AV_LOG_ERROR, "Missing magic\n"); | // av_log(s->avctx, AV_LOG_ERROR, "Missing magic\n"); | ||||
| // return -1; | // return -1; | ||||
| // } | // } | ||||
| @@ -19,6 +19,7 @@ | |||||
| * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | ||||
| */ | */ | ||||
| #include "libavutil/intreadwrite.h" | |||||
| #include "libavutil/bswap.h" | #include "libavutil/bswap.h" | ||||
| #include "avformat.h" | #include "avformat.h" | ||||
| #include "avi.h" | #include "avi.h" | ||||
| @@ -517,7 +518,7 @@ static int avi_read_header(AVFormatContext *s, AVFormatParameters *ap) | |||||
| st->need_parsing = AVSTREAM_PARSE_NONE; | st->need_parsing = AVSTREAM_PARSE_NONE; | ||||
| /* AVI files with Xan DPCM audio (wrongly) declare PCM | /* AVI files with Xan DPCM audio (wrongly) declare PCM | ||||
| * audio in the header but have Axan as stream_code_tag. */ | * audio in the header but have Axan as stream_code_tag. */ | ||||
| if (st->codec->stream_codec_tag == ff_get_fourcc("Axan")){ | |||||
| if (st->codec->stream_codec_tag == AV_RL32("Axan")){ | |||||
| st->codec->codec_id = CODEC_ID_XAN_DPCM; | st->codec->codec_id = CODEC_ID_XAN_DPCM; | ||||
| st->codec->codec_tag = 0; | st->codec->codec_tag = 0; | ||||
| } | } | ||||
| @@ -41,7 +41,7 @@ static int tta_read_header(AVFormatContext *s, AVFormatParameters *ap) | |||||
| int i, channels, bps, samplerate, datalen, framelen; | int i, channels, bps, samplerate, datalen, framelen; | ||||
| uint64_t framepos; | uint64_t framepos; | ||||
| if (get_le32(s->pb) != ff_get_fourcc("TTA1")) | |||||
| if (get_le32(s->pb) != AV_RL32("TTA1")) | |||||
| return -1; // not tta file | return -1; // not tta file | ||||
| url_fskip(s->pb, 2); // FIXME: flags | url_fskip(s->pb, 2); // FIXME: flags | ||||
| @@ -1946,8 +1946,8 @@ static int get_std_framerate(int i){ | |||||
| static int tb_unreliable(AVCodecContext *c){ | static int tb_unreliable(AVCodecContext *c){ | ||||
| if( c->time_base.den >= 101L*c->time_base.num | if( c->time_base.den >= 101L*c->time_base.num | ||||
| || c->time_base.den < 5L*c->time_base.num | || c->time_base.den < 5L*c->time_base.num | ||||
| /* || c->codec_tag == ff_get_fourcc("DIVX") | |||||
| || c->codec_tag == ff_get_fourcc("XVID")*/ | |||||
| /* || c->codec_tag == AV_RL32("DIVX") | |||||
| || c->codec_tag == AV_RL32("XVID")*/ | |||||
| || c->codec_id == CODEC_ID_MPEG2VIDEO) | || c->codec_id == CODEC_ID_MPEG2VIDEO) | ||||
| return 1; | return 1; | ||||
| return 0; | return 0; | ||||
| @@ -242,17 +242,6 @@ static inline av_const float av_clipf(float a, float amin, float amax) | |||||
| else return a; | else return a; | ||||
| } | } | ||||
| /** | |||||
| * converts fourcc string to int | |||||
| */ | |||||
| static inline av_pure int ff_get_fourcc(const char *s){ | |||||
| #ifdef HAVE_AV_CONFIG_H | |||||
| assert( strlen(s)==4 ); | |||||
| #endif | |||||
| return (s[0]) + (s[1]<<8) + (s[2]<<16) + (s[3]<<24); | |||||
| } | |||||
| #define MKTAG(a,b,c,d) (a | (b << 8) | (c << 16) | (d << 24)) | #define MKTAG(a,b,c,d) (a | (b << 8) | (c << 16) | (d << 24)) | ||||
| #define MKBETAG(a,b,c,d) (d | (c << 8) | (b << 16) | (a << 24)) | #define MKBETAG(a,b,c,d) (d | (c << 8) | (b << 16) | (a << 24)) | ||||