CODEC_ID_MP2= 0x15000,
CODEC_ID_MP3, /* prefered ID for MPEG Audio layer 1, 2 or3 decoding */
CODEC_ID_AAC,
+#if LIBAVCODEC_VERSION_INT < ((52<<16)+(0<<8)+0)
CODEC_ID_MPEG4AAC,
+#endif
CODEC_ID_AC3,
CODEC_ID_DTS,
CODEC_ID_VORBIS,
// FIXME - raw AAC files - maybe just one entry will be enough
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
AAC_CODEC(CODEC_ID_MPEG4AAC, mpeg4aac);
+#endif
#undef AAC_CODEC
/* special case time: To support Xan DPCM, hardcode
* the format if Xxan is the video codec */
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
one packet */
if (xan_video)
{"A_AC3" , CODEC_ID_AC3},
{"A_DTS" , CODEC_ID_DTS},
{"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},
{NULL , CODEC_ID_NONE}
/* TODO: AC3-9/10 (?), Real, Musepack, Quicktime */
}
- if (codec_id==CODEC_ID_AAC || codec_id==CODEC_ID_MPEG4AAC) {
+ if (codec_id==CODEC_ID_AAC) {
MatroskaAudioTrack *audiotrack = (MatroskaAudioTrack *) track;
int profile = matroska_aac_profile(track->codec_id);
int sri = matroska_aac_sri(audiotrack->internal_samplerate);
{ CODEC_ID_WMAV1, 0x160 },
{ CODEC_ID_WMAV2, 0x161 },
{ 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_SONIC, 0x2048 },
{ CODEC_ID_SONIC_LS, 0x2048 },
RTPDynamicProtocolHandler *RTPFirstDynamicPayloadHandler= NULL;
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)
{
pkt->pts = addend + delta_timestamp;
}
break;
- case CODEC_ID_MPEG4AAC:
+ case CODEC_ID_AAC:
case CODEC_ID_H264:
case CODEC_ID_MPEG4:
pkt->pts = timestamp;
// moved from below, verbatim. this is because this section handles packets, and the lower switch handles
// timestamps.
// TODO: Put this into a dynamic packet handler...
- case CODEC_ID_MPEG4AAC:
+ case CODEC_ID_AAC:
if (rtp_parse_mp4_au(s, buf))
return -1;
{
{
switch (codec->codec_id) {
case CODEC_ID_MPEG4:
- case CODEC_ID_MPEG4AAC:
+ case CODEC_ID_AAC:
if (!strcmp(attr, "config")) {
/* decode the hexa encoded parameter */
int len = hex_to_data(NULL, value);