[MPlayer-cvslog] r19369 - in trunk/libmpdemux: demux_mov.c parse_mp4.h
rtogni
subversion at mplayerhq.hu
Sat Aug 12 00:57:33 CEST 2006
Author: rtogni
Date: Sat Aug 12 00:57:33 2006
New Revision: 19369
Modified:
trunk/libmpdemux/demux_mov.c
trunk/libmpdemux/parse_mp4.h
Log:
Add support for 13k Voice (Qclp) in 3g2 files
Fix vorbis detection so that it doesn't misdetect other codecs
Modified: trunk/libmpdemux/demux_mov.c
==============================================================================
--- trunk/libmpdemux/demux_mov.c (original)
+++ trunk/libmpdemux/demux_mov.c Sat Aug 12 00:57:33 2006
@@ -807,7 +807,9 @@
if(atom_len > 8) {
esds_t esds;
if(!mp4_parse_esds(&trak->stdata[36+adjust], atom_len-8, &esds)) {
- if(sh->format==0x6134706D && esds.decoderConfigLen > 8)
+ /* 0xdd is a "user private" id, not an official allocated id (see http://www.mp4ra.org/object.html),
+ so perform some extra checks to be sure that this is really vorbis audio */
+ if(esds.objectTypeId==0xdd && esds.streamType==0x15 && sh->format==0x6134706D && esds.decoderConfigLen > 8)
{
//vorbis audio
unsigned char *buf[3];
@@ -861,6 +863,12 @@
if(esds.objectTypeId==MP4OTI_MPEG1Audio || esds.objectTypeId==MP4OTI_MPEG2AudioPart3)
sh->format=0x55; // .mp3
+ if(esds.objectTypeId==MP4OTI_13kVoice) { // 13K Voice, defined by 3GPP2
+ sh->format=mmioFOURCC('Q', 'c', 'l', 'p');
+ trak->nchannels=sh->channels=1;
+ trak->samplebytes=sh->samplesize=1;
+ }
+
// dump away the codec specific configuration for the AAC decoder
if(esds.decoderConfigLen){
if( (esds.decoderConfig[0]>>3) == 29 )
Modified: trunk/libmpdemux/parse_mp4.h
==============================================================================
--- trunk/libmpdemux/parse_mp4.h (original)
+++ trunk/libmpdemux/parse_mp4.h Sat Aug 12 00:57:33 2006
@@ -59,6 +59,8 @@
#define MP4OTI_MPEG1Audio 0x6B
/* JPEG visual stream */
#define MP4OTI_JPEG 0x6C
+/* 3GPP2 */
+#define MP4OTI_13kVoice 0xE1
/* I define uint24 here for better understanding */
#ifndef uint24_t
More information about the MPlayer-cvslog
mailing list