Hi, As you might know x264 has support for encoding 9- and 10-bit h264 since last summer. This patchset adds decoding support for such videos in libav. Currently only 9- and 10-bit decoding is supported. Support for higher bit depths could probably be enabled later on.
The patchset has been tested on Linux x86-64. I might have missed a few files related to other platforms. Please comment if that is the case. I haven't updated version fields (major/minor, etc). Please give me a hint on what fields need to be updated. As requested by Ronald: The file size of the ffmpeg binary increases from 6656712 to 7041704 bytes with this patchset. Since I posted this on the ffmpeg mailing list I've corrected a couple of bugs regarding memory allocation. Also, I've done some basic benchmarking on how this patchset affects 8-bit decoding. I'll post the data from those runs separately. ffplay.c | 4 +- libavcodec/alpha/dsputil_alpha.c | 4 + libavcodec/arm/dsputil_init_arm.c | 4 + libavcodec/arm/dsputil_init_armv6.c | 4 + libavcodec/arm/dsputil_init_neon.c | 6 + libavcodec/arm/dsputil_iwmmxt.c | 3 + libavcodec/arm/h264dsp_init_arm.c | 8 +- libavcodec/arm/h264pred_init_arm.c | 11 +- libavcodec/bfin/dsputil_bfin.c | 5 + libavcodec/dsputil.c | 1512 ++++------------------------------ libavcodec/dsputil.h | 70 ++- libavcodec/dsputil_internal.h | 1393 +++++++++++++++++++++++++++++++ libavcodec/h264.c | 267 ++++--- libavcodec/h264.h | 16 +- libavcodec/h264_cabac.c | 102 ++- libavcodec/h264_cavlc.c | 92 ++- libavcodec/h264_high_depth.h | 86 ++ libavcodec/h264_loopfilter.c | 90 ++- libavcodec/h264_ps.c | 47 +- libavcodec/h264dsp.c | 350 ++------- libavcodec/h264dsp.h | 9 +- libavcodec/h264dsp_internal.h | 288 +++++++ libavcodec/h264idct.c | 233 +----- libavcodec/h264idct_internal.h | 291 +++++++ libavcodec/h264pred.c | 1481 ++++------------------------------ libavcodec/h264pred.h | 6 +- libavcodec/h264pred_internal.h | 1339 ++++++++++++++++++++++++++++++ libavcodec/mlib/dsputil_mlib.c | 4 + libavcodec/ppc/dsputil_altivec.c | 5 + libavcodec/ppc/dsputil_ppc.c | 4 + libavcodec/ppc/h264_altivec.c | 7 +- libavcodec/ps2/dsputil_mmi.c | 3 + libavcodec/rv34.c | 2 +- libavcodec/sh4/dsputil_align.c | 8 + libavcodec/sh4/dsputil_sh4.c | 2 + libavcodec/sparc/dsputil_vis.c | 3 + libavcodec/utils.c | 7 +- libavcodec/vp8.c | 2 +- libavcodec/x86/dsputil_mmx.c | 32 + libavcodec/x86/h264_intrapred_init.c | 6 +- libavcodec/x86/h264dsp_mmx.c | 4 +- libavutil/pixdesc.c | 46 + libavutil/pixfmt.h | 8 + libswscale/swscale.c | 23 +- libswscale/swscale_internal.h | 10 + libswscale/swscale_template.c | 34 + libswscale/utils.c | 4 + tests/fate/h264.mak | 12 + 48 files changed, 4495 insertions(+), 3452 deletions(-) Regards, Oskar Arvidsson _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
