[Ffmpeg-devel] [PATCH] non conformance to 3GP format (3GP TS 26.244 v 6.5.0 2006/06)
Michael Niedermayer
michaelni
Wed Jul 26 22:12:19 CEST 2006
Hi
On Wed, Jul 26, 2006 at 06:02:58PM +0200, ffmpeg wrote:
> Hello,
>
> I would like to submit for review (and maybe integration) the following
> patch:
>
>
> Purpose: Fix some non conformance to 3GP format (3GP TS 26.244 v 6.5.0
> 2006/06)
> Applies: libavcodec/movenc.c {SVN 5720}, (test within trunk SVN 5726)
> Testing:
> - Regression test OK;
> - 3GP file check with some commercial 3gp analysis tools
> - play on QuickTime
> - play on HP OCMP Video 1.0
> Authors: Francois Draperi
> Discussion:
> Some fields (like in 'samr' atom) are not set to 0; "3GP TS 26.244"
> enforces those values to be null.
> The patch simply put 0 in the needed audio and video atom fields, for
> 3GP files (and only them), and for AMR_NB mode (and only this codec).
> Maybe someone may also ask to restrict those changes to the '-strict
> very' mode, but is it useful ?
>
> Hope that help
> Francois Draperi.
>
[...]
> + (track->enc->codec_id == CODEC_ID_AMR_NB && track->mode != MODE_3GP) ;
trailing whitespace
> +
> int version = track->mode == MODE_MOV &&
> (vbr ||
> track->enc->codec_id == CODEC_ID_PCM_S32LE ||
> track->enc->codec_id == CODEC_ID_PCM_S24LE);
>
> +
> +
cosmetical changes
[...]
>
> + printf("#### vbr is %d\n\n\n", vbr);
printf is forbidden, this actually should not have compiled at all
> if(vbr) {
> put_be16(pb, 0xfffe); /* compression ID (vbr)*/
> } else {
> @@ -608,16 +613,25 @@
> put_be16(pb, 0); /* Reserved */
> put_be16(pb, 1); /* Data-reference index */
>
> - put_be16(pb, 0); /* Codec stream version */
> - put_be16(pb, 0); /* Codec stream revision (=0) */
> - put_tag(pb, "FFMP"); /* Vendor */
> - if(track->enc->codec_id == CODEC_ID_RAWVIDEO) {
> + /* FIX BEGIN as defined in 3GP TS 26.244 v 6.5.0 2006/06 ,for s263 atom, following must be set to 0 [Francois Dr.] */
> + if ( track->mode == MODE_3GP) {
> + put_be32(pb, 0);
indention in ffmpeg should be consitant, if a file uses 4-spaces, changes
must use 4 spaces too unless you want to avoid unneeded whitespaces changes
of existing code, but you didnt do that here ...
> + put_be32(pb, 0);
> + put_be32(pb, 0);
> + put_be32(pb, 0);
> + } else {
> + put_be16(pb, 0); /* Codec stream version */
> + put_be16(pb, 0); /* Codec stream revision (=0) */
the above 2 are correct for all cases so this is code duplication
> + put_tag(pb, "FFMP"); /* Vendor */
> + if(track->enc->codec_id == CODEC_ID_RAWVIDEO) {
> put_be32(pb, 0); /* Temporal Quality */
> put_be32(pb, 0x400); /* Spatial Quality = lossless*/
> - } else {
> - put_be32(pb, 0x200); /* Temporal Quality = normal */
> + } else {
> + put_be32(pb, 0x200); /* Temporal Quality = normal */
tabs are forbidden
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
In the past you could go to a library and read, borrow or copy any book
Today you'd get arrested for mere telling someone where the library is
More information about the ffmpeg-devel
mailing list