gst-libs/gst/riff/: Added MPEG-4 AAC and id and caps. Fixes #357289

Original commit message from CVS:
Patch by: Young-Ho Cha <ganadist at chollian dot net>
* gst-libs/gst/riff/riff-ids.h:
* gst-libs/gst/riff/riff-media.c: (gst_riff_create_audio_caps),
(gst_riff_create_audio_template_caps):
Added MPEG-4 AAC and id and caps. Fixes #357289
Added WMA9 Lossless id.
This commit is contained in:
Young-Ho Cha 2006-09-23 08:51:14 +00:00 committed by Wim Taymans
parent 8df1f1ad47
commit 038488faa4
3 changed files with 32 additions and 3 deletions

View file

@ -1,3 +1,13 @@
2006-09-23 Wim Taymans <wim@fluendo.com>
Patch by: Young-Ho Cha <ganadist at chollian dot net>
* gst-libs/gst/riff/riff-ids.h:
* gst-libs/gst/riff/riff-media.c: (gst_riff_create_audio_caps),
(gst_riff_create_audio_template_caps):
Added MPEG-4 AAC and id and caps. Fixes #357289
Added WMA9 Lossless id.
2006-09-22 Tim-Philipp Müller <tim at centricular dot net>
* ext/gnomevfs/gstgnomevfssrc.c:

View file

@ -304,12 +304,14 @@ typedef struct _gst_riff_strf_auds { /* == WaveHeader (?) */
#define GST_RIFF_WAVE_FORMAT_VOXWARE_VR18 (0x0078)
#define GST_RIFF_WAVE_FORMAT_VOXWARE_TQ40 (0x0079)
#define GST_RIFF_WAVE_FORMAT_VOXWARE_TQ60 (0x0081)
#define GST_RIFF_WAVE_FORMAT_AAC (0x00ff)
#define GST_RIFF_IBM_FORMAT_MULAW (0x0101)
#define GST_RIFF_IBM_FORMAT_ALAW (0x0102)
#define GST_RIFF_IBM_FORMAT_ADPCM (0x0103)
#define GST_RIFF_WAVE_FORMAT_WMAV1 (0x0160)
#define GST_RIFF_WAVE_FORMAT_WMAV2 (0x0161)
#define GST_RIFF_WAVE_FORMAT_WMAV3 (0x0162)
#define GST_RIFF_WAVE_FORMAT_WMAV3_L (0x0163)
#define GST_RIFF_WAVE_FORMAT_SONY_ATRAC3 (0x0270)
#define GST_RIFF_WAVE_FORMAT_A52 (0x2000)
#define GST_RIFF_WAVE_FORMAT_DTS (0x2001)

View file

@ -726,7 +726,9 @@ gst_riff_create_audio_caps (guint16 codec_id,
gint ch = strf->channels;
gint ws = strf->size;
caps = gst_caps_new_simple ("audio/x-raw-int", "endianness", G_TYPE_INT, G_LITTLE_ENDIAN, "channels", G_TYPE_INT, ch, /* needed for _add_layout() */
caps = gst_caps_new_simple ("audio/x-raw-int",
"endianness", G_TYPE_INT, G_LITTLE_ENDIAN,
"channels", G_TYPE_INT, ch,
"width", G_TYPE_INT, (int) (ba * 8 / ch),
"depth", G_TYPE_INT, ws, "signed", G_TYPE_BOOLEAN, ws != 8, NULL);
@ -879,6 +881,15 @@ gst_riff_create_audio_caps (guint16 codec_id,
if (codec_name)
*codec_name = g_strdup ("DTS audio");
break;
case GST_RIFF_WAVE_FORMAT_AAC:
{
channels_max = 8;
caps = gst_caps_new_simple ("audio/mpeg",
"mpegversion", G_TYPE_INT, 4, NULL);
if (codec_name)
*codec_name = g_strdup ("MPEG-4 AAC audio");
break;
}
case GST_RIFF_WAVE_FORMAT_WMAV1:
case GST_RIFF_WAVE_FORMAT_WMAV2:
case GST_RIFF_WAVE_FORMAT_WMAV3:
@ -886,7 +897,6 @@ gst_riff_create_audio_caps (guint16 codec_id,
gint version = (codec_id - GST_RIFF_WAVE_FORMAT_WMAV1) + 1;
channels_max = 6;
block_align = TRUE;
caps = gst_caps_new_simple ("audio/x-wma",
@ -905,6 +915,11 @@ gst_riff_create_audio_caps (guint16 codec_id,
}
break;
}
case GST_RIFF_WAVE_FORMAT_WMAV3_L:
{
/* WMA Version 9 Lossless */
goto unknown;
}
case GST_RIFF_WAVE_FORMAT_SONY_ATRAC3:
caps = gst_caps_new_simple ("audio/x-vnd.sony.atrac3", NULL);
if (codec_name)
@ -979,6 +994,8 @@ gst_riff_create_audio_caps (guint16 codec_id,
subformat_guid[1] == 0x41783f83 &&
subformat_guid[2] == 0xf0006596 && subformat_guid[3] == 0xe59262bf) {
caps = gst_caps_new_simple ("application/x-ogg-avi", NULL);
if (codec_name)
*codec_name = g_strdup ("Ogg-AVI");
}
if (caps == NULL) {
@ -987,7 +1004,6 @@ gst_riff_create_audio_caps (guint16 codec_id,
}
break;
}
/* can anything decode these? pitfdll? */
case GST_RIFF_WAVE_FORMAT_VOXWARE:
case GST_RIFF_WAVE_FORMAT_VOXWARE_BYTE_ALIGNED:
@ -1154,6 +1170,7 @@ gst_riff_create_audio_template_caps (void)
GST_RIFF_WAVE_FORMAT_VORBIS1,
GST_RIFF_WAVE_FORMAT_A52,
GST_RIFF_WAVE_FORMAT_DTS,
GST_RIFF_WAVE_FORMAT_AAC,
GST_RIFF_WAVE_FORMAT_ALAW,
GST_RIFF_WAVE_FORMAT_MULAW,
GST_RIFF_WAVE_FORMAT_ADPCM,