[Ffmpeg-devel] [RFC] D10 IMX patch encoding

Michael Niedermayer michaelni
Thu Jan 25 00:45:29 CET 2007


Hi

On Wed, Jan 24, 2007 at 05:42:50PM +0100, Baptiste Coudurier wrote:
> Hi
> 
> This patch add features to be able to encode D10 streams (SMPTE 356M,
> also known as IMX)
> 
> Current rc code cannot support non linear quant, therefore, I workaround
> mpeg2 quantizer to be able to put 1 as q_scale_type in bitstream,
> meaning that qmax > 4 is not supported (yes, that's stupid but
> q_scale_type 0 is forbidden in D10, and bitrate is either 30/40/50 Mb/s)

i dont like the qmax > 4 limit, and the qscale encoding has nothing to do
with the RC code, snow uses a logarithmic qscale and that works too


> 
> Add support for one mb per slice.

setting the rtp packet size (or whatever the field in AVCodecContext was 
called) to 1 should have that effect too with no other code changes


> 
> Add IMX bitstream filter to mux D10 stream into mov, and workaround to
> set acceptable width/height by Final Cut, only PAL was tested. (coded
> height is 608, while display height must be 576)

[...]
> Index: libavcodec/mpeg12.c
> ===================================================================
> --- libavcodec/mpeg12.c	(revision 7686)
> +++ libavcodec/mpeg12.c	(working copy)
> @@ -31,6 +31,7 @@
>  #include "mpegvideo.h"
>  
>  #include "mpeg12data.h"
> +#include "bytestream.h"

id prefer if you use the bitstream stuff for the 3 lines ...

[...]
> @@ -1560,13 +1561,14 @@
>  
>      /**
>       * slice flags
> -     * - encoding: unused
> +     * - encoding: set by user.
>       * - decoding: set by user.
>       */
>      int slice_flags;
>  #define SLICE_FLAG_CODED_ORDER    0x0001 ///< draw_horiz_band() is called in coded order instead of display
>  #define SLICE_FLAG_ALLOW_FIELD    0x0002 ///< allow draw_horiz_band() with field slices (MPEG2 field pics)
>  #define SLICE_FLAG_ALLOW_PLANE    0x0004 ///< allow draw_horiz_band() with 1 component at a time (SVQ1)
> +#define SLICE_FLAG_ONE_PER_MB     0x0008 ///< use one slice per mb

unacceptable slice_flags have nothing to do with slices in mpeg terminology
they are about a callback to the user app after a row of MBs is finished


[...]

-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

I have often repented speaking, but never of holding my tongue.
-- Xenocrates
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20070125/0bc49662/attachment.pgp>



More information about the ffmpeg-devel mailing list