[XviD-devel] Questions / Bug fixes / Patches
Michael Militzer
michael at xvid.org
Thu Aug 19 09:37:45 CEST 2010
Hi Carl,
> F:\movies\outputs>..\tools\mp4box\MP4Box -fps 29.970 -nodrop -packed
> -new -add .\sherlock_intro_qvga_Xvid_L6.m4v
why are you using "-packed" with MP4Box? Are you sure your input file is
a packed bitstream? I suppose the "-packed" option might be the reason
why the N_VOPs get stripped and the stream is converted to variable
framerate. Could you try without "-packed"?
> Information on the assertion error (I was encoding from virtualdub 1.9.9):
> mbcoding.c : line 595:
> estimated_length == coded_length
This assert is nothing to worry about. In fact, it got already removed
in the latest dev version of xvid.
Best regards,
Michael
Quoting Carl Eric Codere <cecodere at yahoo.ca>:
> Greetings,
> Here are the patches for inclusion in xvidcore. Regarding
> the fix on the frame_drop_ratio equal to zero, you are correct in
> stating that the change suggested fixes the problem with mp4box, now
> the streams are at constant frame rate and the same number of
> frames in the mp4 stream exist.
>
> Just for your information, with the unpatched behavior I was having
> the following issue in
> mp4box:
>
> F:\movies\outputs>..\tools\mp4box\MP4Box -fps 29.970 -nodrop -packed
> -new -add .\sherlock_intro_qvga_Xvid_L6.m4v
> .\sherlock_intro_qvga_Xvid_L6_256_Xvid.mp4
> MPEG-4 Video import - 320 x 240 @ 29.9700 FPS
> Indicated Profile: ISO Reserved Profile
> Import results: 1224 VOPs (6 Is - 1218 Ps)
> Removed 28 N-VOPs
> Converting to ISMA Audio-Video MP4 file...
> Saving .\sherlock_intro_qvga_Xvid_L6_256_Xvid.mp4: 0.500 secs Interleaving
>
> As you see, the 28 N-VOPs were being removed, resulting in a
> variable frame rate mp4 stream. I am not familiar enough with the
> MPEG-4 stream to know why this happened. At least the patch fixes
> the problem.
>
> On the other hand, the other patches for support of vfw config.c
> sp at l4a, sp at l5 and sp at l6 seem to work on the standard dll compiled
> using the generic build, I tested them summarily, BUT with the
> debug version of xvidcore.dll compiled with Visual Studio 9.0
> Express, when trying to encode at sp at L6, I get no problem, but at
> sp at L4a at max bitrate of 4000 kbps, I get an assertion error, is
> that normal?
>
> Information on the assertion error (I was encoding from virtualdub 1.9.9):
> mbcoding.c : line 595:
> estimated_length == coded_length
>
> If you need the test video (It is 135 Mbytes in size) let me know.
>
> Patches:
>
> Frame drop ratio fix:
>
> diff U3ib C:/MinGW/home/Carl/xvidcore/src/encoder.original
> C:/MinGW/home/Carl/xvidcore/src/encoder.c
> --- C:/MinGW/home/Carl/xvidcore/src/encoder.original Thu Feb 08 09:10:24 2007
> +++ C:/MinGW/home/Carl/xvidcore/src/encoder.c Wed Aug 18 21:18:45 2010
> @@ -1884,7 +1884,7 @@
> #if 0
> DPRINTF(XVID_DEBUG_DEBUG, "kmu %i %i %i\n", current->sStat.kblks,
> current->sStat.mblks, current->sStat.ublks);
> #endif
> - if (current->sStat.kblks + current->sStat.mblks <=
> + if (current->sStat.kblks + current->sStat.mblks <
> (pParam->frame_drop_ratio * mb_width * mb_height) / 100 &&
> ( (pEnc->bframenum_head >= pEnc->bframenum_tail) ||
> !(pEnc->mbParam.global_flags & XVID_GLOBAL_CLOSED_GOP)) )
> {
>
> Additional Simple Profile Levels:
>
> diff U3ib C:/MinGW/home/Carl/xvidcore/vfw/src/config.c
> C:/MinGW/home/Carl/xvidcore/vfw/src/config.original
> --- C:/MinGW/home/Carl/xvidcore/vfw/src/config.c Wed Aug 18 21:53:29 2010
> +++ C:/MinGW/home/Carl/xvidcore/vfw/src/config.original Sun Nov 30
> 13:57:14 2008
> @@ -122,11 +122,6 @@
> { "Simple @ L1", 0x01, 176, 144, 15, 4, 198, 99,
> 1485, 100, 10*16368, 2048, 64000, 0, -1,
> PROFILE_S|PROFILE_ADAPTQUANT },
> { "Simple @ L2", 0x02, 352, 288, 15, 4, 792, 396,
> 5940, 100, 40*16368, 4096, 128000, 0, -1,
> PROFILE_S|PROFILE_ADAPTQUANT },
> { "Simple @ L3", 0x03, 352, 288, 15, 4, 792, 396,
> 11880, 100, 40*16368, 8192, 384000, 0, -1,
> PROFILE_S|PROFILE_ADAPTQUANT },
> - /* From ISO/IEC 14496-2:2004/FPDAM 2: New Levels for Simple Profile */
> - { "Simple @ L4a", 0x04, 640, 480, 30, 4, 2400, 1200,
> 36000, 100, 80*16368, 16384, 4000000, 0, -1,
> PROFILE_S|PROFILE_ADAPTQUANT },
> - { "Simple @ L5", 0x05, 720, 576, 30, 4, 3240, 1620,
> 40500, 100, 112*16368, 16384, 8000000, 0, -1,
> PROFILE_S|PROFILE_ADAPTQUANT },
> - /* From ISO/IEC 14496-2:2004/FPDAM 4: Simple profile level 6 */
> - { "Simple @ L6", 0x06, 1280, 720, 30, 4, 7200, 3600,
> 108000, 100, 248*16368, 16384,12000000, 0, -1,
> PROFILE_S|PROFILE_ADAPTQUANT },
>
> #if 0 /* since rrv encoding is no longer support, these profiles
> have little use */
> { "ARTS @ L1", 0x91, 176, 144, 15, 4, 198, 99,
> 1485, 100, 10*16368, 8192, 64000, 0, -1, PROFILE_ARTS },
>
>
> Sorry if the text is wrapped, my mailer is kind of limited, if it
> causes problems, let me know and will upload them somewhere else!
>
> Best regards,
> Carl
> _______________________________________________
> Xvid-devel mailing list
> Xvid-devel at xvid.org
> http://list.xvid.org/mailman/listinfo/xvid-devel
>
>
More information about the Xvid-devel
mailing list