Originally committed as revision 6954 to svn://svn.ffmpeg.org/ffmpeg/trunktags/v0.5
| @@ -206,7 +206,9 @@ enum CodecID { | |||||
| CODEC_ID_MP2= 0x15000, | CODEC_ID_MP2= 0x15000, | ||||
| CODEC_ID_MP3, /* prefered ID for MPEG Audio layer 1, 2 or3 decoding */ | CODEC_ID_MP3, /* prefered ID for MPEG Audio layer 1, 2 or3 decoding */ | ||||
| CODEC_ID_AAC, | CODEC_ID_AAC, | ||||
| #if LIBAVCODEC_VERSION_INT < ((52<<16)+(0<<8)+0) | |||||
| CODEC_ID_MPEG4AAC, | CODEC_ID_MPEG4AAC, | ||||
| #endif | |||||
| CODEC_ID_AC3, | CODEC_ID_AC3, | ||||
| CODEC_ID_DTS, | CODEC_ID_DTS, | ||||
| CODEC_ID_VORBIS, | CODEC_ID_VORBIS, | ||||
| @@ -326,7 +326,9 @@ AVCodec name ## _decoder = { \ | |||||
| // FIXME - raw AAC files - maybe just one entry will be enough | // FIXME - raw AAC files - maybe just one entry will be enough | ||||
| AAC_CODEC(CODEC_ID_AAC, aac); | AAC_CODEC(CODEC_ID_AAC, aac); | ||||
| #if LIBAVCODEC_VERSION_INT < ((52<<16)+(0<<8)+0) | |||||
| // If it's mp4 file - usually embeded into Qt Mov | // If it's mp4 file - usually embeded into Qt Mov | ||||
| AAC_CODEC(CODEC_ID_MPEG4AAC, mpeg4aac); | AAC_CODEC(CODEC_ID_MPEG4AAC, mpeg4aac); | ||||
| #endif | |||||
| #undef AAC_CODEC | #undef AAC_CODEC | ||||
| @@ -443,6 +443,9 @@ static int avi_read_header(AVFormatContext *s, AVFormatParameters *ap) | |||||
| /* special case time: To support Xan DPCM, hardcode | /* special case time: To support Xan DPCM, hardcode | ||||
| * the format if Xxan is the video codec */ | * the format if Xxan is the video codec */ | ||||
| st->need_parsing = 1; | st->need_parsing = 1; | ||||
| /* ADTS header is in extradata, AAC without header must be stored as exact frames, parser not needed and it will fail */ | |||||
| if (st->codec->codec_id == CODEC_ID_AAC && st->codec->extradata_size) | |||||
| st->need_parsing = 0; | |||||
| /* force parsing as several audio frames can be in | /* force parsing as several audio frames can be in | ||||
| one packet */ | one packet */ | ||||
| if (xan_video) | if (xan_video) | ||||
| @@ -222,8 +222,7 @@ static CodecTags codec_tags[]={ | |||||
| {"A_AC3" , CODEC_ID_AC3}, | {"A_AC3" , CODEC_ID_AC3}, | ||||
| {"A_DTS" , CODEC_ID_DTS}, | {"A_DTS" , CODEC_ID_DTS}, | ||||
| {"A_VORBIS" , CODEC_ID_VORBIS}, | {"A_VORBIS" , CODEC_ID_VORBIS}, | ||||
| {"A_AAC/MPEG2/" , CODEC_ID_AAC}, | |||||
| {"A_AAC/MPEG4/" , CODEC_ID_MPEG4AAC}, | |||||
| {"A_AAC/" , CODEC_ID_AAC}, | |||||
| {"A_WAVPACK4" , CODEC_ID_WAVPACK}, | {"A_WAVPACK4" , CODEC_ID_WAVPACK}, | ||||
| {NULL , CODEC_ID_NONE} | {NULL , CODEC_ID_NONE} | ||||
| /* TODO: AC3-9/10 (?), Real, Musepack, Quicktime */ | /* TODO: AC3-9/10 (?), Real, Musepack, Quicktime */ | ||||
| @@ -2246,7 +2245,7 @@ matroska_read_header (AVFormatContext *s, | |||||
| } | } | ||||
| if (codec_id==CODEC_ID_AAC || codec_id==CODEC_ID_MPEG4AAC) { | |||||
| if (codec_id==CODEC_ID_AAC) { | |||||
| MatroskaAudioTrack *audiotrack = (MatroskaAudioTrack *) track; | MatroskaAudioTrack *audiotrack = (MatroskaAudioTrack *) track; | ||||
| int profile = matroska_aac_profile(track->codec_id); | int profile = matroska_aac_profile(track->codec_id); | ||||
| int sri = matroska_aac_sri(audiotrack->internal_samplerate); | int sri = matroska_aac_sri(audiotrack->internal_samplerate); | ||||
| @@ -186,7 +186,7 @@ const CodecTag codec_wav_tags[] = { | |||||
| { CODEC_ID_WMAV1, 0x160 }, | { CODEC_ID_WMAV1, 0x160 }, | ||||
| { CODEC_ID_WMAV2, 0x161 }, | { CODEC_ID_WMAV2, 0x161 }, | ||||
| { CODEC_ID_AAC, 0x706d }, | { CODEC_ID_AAC, 0x706d }, | ||||
| { CODEC_ID_MPEG4AAC, 0xff }, | |||||
| { CODEC_ID_AAC, 0xff }, | |||||
| { CODEC_ID_VORBIS, ('V'<<8)+'o' }, //HACK/FIXME, does vorbis in WAV/AVI have an (in)official id? | { CODEC_ID_VORBIS, ('V'<<8)+'o' }, //HACK/FIXME, does vorbis in WAV/AVI have an (in)official id? | ||||
| { CODEC_ID_SONIC, 0x2048 }, | { CODEC_ID_SONIC, 0x2048 }, | ||||
| { CODEC_ID_SONIC_LS, 0x2048 }, | { CODEC_ID_SONIC_LS, 0x2048 }, | ||||
| @@ -186,7 +186,7 @@ AVRtpPayloadType_t AVRtpPayloadTypes[]= | |||||
| RTPDynamicProtocolHandler *RTPFirstDynamicPayloadHandler= NULL; | RTPDynamicProtocolHandler *RTPFirstDynamicPayloadHandler= NULL; | ||||
| static RTPDynamicProtocolHandler mp4v_es_handler= {"MP4V-ES", CODEC_TYPE_VIDEO, CODEC_ID_MPEG4}; | static RTPDynamicProtocolHandler mp4v_es_handler= {"MP4V-ES", CODEC_TYPE_VIDEO, CODEC_ID_MPEG4}; | ||||
| static RTPDynamicProtocolHandler mpeg4_generic_handler= {"mpeg4-generic", CODEC_TYPE_AUDIO, CODEC_ID_MPEG4AAC}; | |||||
| static RTPDynamicProtocolHandler mpeg4_generic_handler= {"mpeg4-generic", CODEC_TYPE_AUDIO, CODEC_ID_AAC}; | |||||
| static void register_dynamic_payload_handler(RTPDynamicProtocolHandler *handler) | static void register_dynamic_payload_handler(RTPDynamicProtocolHandler *handler) | ||||
| { | { | ||||
| @@ -564,7 +564,7 @@ static void finalize_packet(RTPDemuxContext *s, AVPacket *pkt, uint32_t timestam | |||||
| pkt->pts = addend + delta_timestamp; | pkt->pts = addend + delta_timestamp; | ||||
| } | } | ||||
| break; | break; | ||||
| case CODEC_ID_MPEG4AAC: | |||||
| case CODEC_ID_AAC: | |||||
| case CODEC_ID_H264: | case CODEC_ID_H264: | ||||
| case CODEC_ID_MPEG4: | case CODEC_ID_MPEG4: | ||||
| pkt->pts = timestamp; | pkt->pts = timestamp; | ||||
| @@ -694,7 +694,7 @@ int rtp_parse_packet(RTPDemuxContext *s, AVPacket *pkt, | |||||
| // moved from below, verbatim. this is because this section handles packets, and the lower switch handles | // moved from below, verbatim. this is because this section handles packets, and the lower switch handles | ||||
| // timestamps. | // timestamps. | ||||
| // TODO: Put this into a dynamic packet handler... | // TODO: Put this into a dynamic packet handler... | ||||
| case CODEC_ID_MPEG4AAC: | |||||
| case CODEC_ID_AAC: | |||||
| if (rtp_parse_mp4_au(s, buf)) | if (rtp_parse_mp4_au(s, buf)) | ||||
| return -1; | return -1; | ||||
| { | { | ||||
| @@ -251,7 +251,7 @@ static void sdp_parse_fmtp_config(AVCodecContext *codec, char *attr, char *value | |||||
| { | { | ||||
| switch (codec->codec_id) { | switch (codec->codec_id) { | ||||
| case CODEC_ID_MPEG4: | case CODEC_ID_MPEG4: | ||||
| case CODEC_ID_MPEG4AAC: | |||||
| case CODEC_ID_AAC: | |||||
| if (!strcmp(attr, "config")) { | if (!strcmp(attr, "config")) { | ||||
| /* decode the hexa encoded parameter */ | /* decode the hexa encoded parameter */ | ||||
| int len = hex_to_data(NULL, value); | int len = hex_to_data(NULL, value); | ||||