[MPlayer-dev-eng] [PATCH] damr d263 update mov demuxer
adland123
adland123 at yahoo.com
Fri Apr 29 12:29:07 CEST 2005
I made some sample 3gp files with nokia multimedia convertor 2.0 on windows to
test playback of AMR narrow and wide band audio of various rates.
playing these samples showed in the output
found unknown movie atom d263
found unknown audio atom damr
with some research I found this document giving specs for atoms of types listed
above at
http://www.3gpp.org/ftp/tsg_sa/TSG_SA/TSGS_15/Docs/pdf/SP-020088.pdf
uploaded the .3gp samples into Mplayer hq incoming
patch is below
--- main/libmpdemux/demux_mov.c 2005-04-29 02:45:58.000000000 -0400
+++ updated/libmpdemux/demux_mov.c 2005-04-29 06:07:24.000000000 -0400
@@ -14,6 +14,9 @@
// http://www.cmlab.csie.ntu.edu.tw/~pkhsiao/thesis.html
// I really recommend N4270-1.doc and N4270-2.doc which are exact specs
// of the MP4-File Format and the MPEG4 Specific extensions. ::atmos
+// TSGS#15(02)0088
+// http://www.3gpp.org/ftp/tsg_sa/TSG_SA/TSGS_15/Docs/pdf/SP-020088.pdf
+// http://www.3gpp2.org/Public_html/specs/C.S0050-0_v1.0_121503.pdf
#include <stdio.h>
#include <stdlib.h>
@@ -1009,6 +1012,14 @@
memcpy(sh->codecdata, &trak->stdata[28], sh->codecdata_len);
}
} break;
+ case MOV_FOURCC('d','a','m','r'):
+ mp_msg(MSGT_DEMUX, MSGL_INFO, "MOV: Found AMR audio at
om %c%c%c%c (%d)!\n", trak->stdata[32+adjust],trak->stdata[33+adjust],trak->std
ata[34+adjust],trak->stdata[35+adjust], atom_len);
+ if (atom_len>14) {
+ mp_msg(MSGT_DEMUX, MSGL_INFO, "MOV: Vendor: %c%c%c%c V
ersion: %d\n",trak->stdata[36+adjust],trak->stdata[37+adjust],trak->stdata[38+a
djust], trak->stdata[39+adjust],trak->stdata[40+adjust]);
+ mp_msg(MSGT_DEMUX, MSGL_INFO, "MOV: Modes set: %02x%02
x\n",trak->stdata[41+adjust],trak->stdata[42+adjust]);
+ mp_msg(MSGT_DEMUX, MSGL_INFO, "MOV: Mode change period
: %d Frames per sample: %d\n",trak->stdata[43+adjust],trak->stdata[44+adjust]);
+ }
+ break;
default:
mp_msg(MSGT_DEMUX, MSGL_INFO, "MOV: Found unknown audio atom %c%c%c%c (%d)!
\n",
trak->stdata[32+adjust],trak->stdata[33+adjust],trak->stdata[34+adjust]
,trak->stdata[35+adjust],
@@ -1196,6 +1207,13 @@
memcpy(trak->stream_header, trak->stdata+pos+8, trak->stream_header_
len);
}
break;
+ case MOV_FOURCC('d','2','6','3'):
+ mp_msg(MSGT_DEMUX, MSGL_INFO, "MOV: Found H.263 decoder
atom %c%c%c%c (%d)!\n", trak->stdata[pos+4],trak->stdata[pos+5],trak->stdata[po
s+6],
+trak->stdata[pos+7],atom_len);
+ if (atom_len>10){
+ mp_msg(MSGT_DEMUX, MSGL_INFO, "MOV: Vendor: %c%c%c%c H.2
63 level: %d H.263 profile: %d \n", trak->stdata[pos+8],trak->stdata[pos+9],tra
k->stdata[pos+10],trak->stdata[pos+11],trak->stdata[pos+12],trak->stdata[pos+13
]);
+ }
+ break;
case 0:
break;
default:
More information about the MPlayer-dev-eng
mailing list