Christophe Gisquet
9139a7e84f
dnxhddec: cleanup frame header parsing
...
Rely more on the actual syntax from the specs (also seen in the
encoder code).
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-05 12:26:30 +02:00
Christophe Gisquet
74ef5449a6
dnxhddec: init scantable once permutation is set
...
Otherwise, the dsp may change without its permuation being applied.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-02 18:08:36 +02:00
Christophe Gisquet
c7e14a279f
dnxhddec: use dequantization formula from specs
...
The current one, while correct, does not yield the best possible
results. The specificiations suggest another formula, which results
in quality gains in the decoded output from fate tests. This
justifies changing said formula.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-02 18:08:36 +02:00
Christophe Gisquet
7e4070d2e7
dnxhddec: initialize with mb-aligned dimensions
...
The coded size is a multiple of the macroblock size, which is 16.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-02 18:08:36 +02:00
Hendrik Leppkes
1342d7b2f9
Merge commit 'c49cbecbae5a42f4ca004197b0118cc50aaaca2e'
...
* commit 'c49cbecbae5a42f4ca004197b0118cc50aaaca2e':
dnxhddec: Decode and use interlace mb flag
Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-29 15:36:06 +02:00
Christophe Gisquet
c49cbecbae
dnxhddec: Decode and use interlace mb flag
...
This bit is 1 in some samples, and seems to coincide with interlaced
mbs and CID1260. 2008 specs do not know about it, and maintain qscale
is 11 bits. This looks oversized, but may help larger bitdepths.
Currently, it leads to an obviously incorrect qscale value, meaning
its syntax is shifted by 1. However, reading 11 bits also leads to
obviously incorrect decoding: qscale seems to be 10 bits.
However, as most profiles still have 11bits qscale, the feature is
restricted to the CID1260 profile (this flag is dependent on
a higher-level flag located in the header).
The encoder writes 12 bits of syntax, last and first bits always 0,
which is now somewhat inconsistent with the decoder, but ends up with
the same effect (progressive + reserved bit).
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-09-29 14:33:01 +02:00
Christophe Gisquet
578f721f5d
dnxhddec: add my contributions
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-28 12:39:22 +02:00
Christophe Gisquet
6110a55b7d
dnxhddec: reindent/cosmetics
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-28 12:25:56 +02:00
Christophe Gisquet
235381e674
dnxhddec: use unsafe bitstream reader
...
Each line is padded by the format, and errors are now reported and
stop the decoding. Around 5% speedup.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-28 01:00:58 +02:00
Christophe Gisquet
b8b8e82ea1
dnxhddec: check and report bitstream errors
...
This only occur when an overrun in coefficient decoding is
detected.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-27 21:57:58 +02:00
Christophe Gisquet
5c6e3a019c
dnxhddec: simplify block parsing calls
...
Fewer arguments, less duplicated code.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-27 12:03:00 +02:00
Christophe Gisquet
8e8ed57ea7
dnxhddec: remove unused qscale parameter
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-27 12:03:00 +02:00
Christophe Gisquet
08a7510fca
dnxhddec: implement slice multithreading
...
Around 3x speedup with 4 threads. Maybe more mb lines should be
batched per thread, but that's good enough for a first try.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-27 01:07:46 +02:00
Christophe Gisquet
dc218bd083
dnxhddec: parse and print adaptive color transform
...
Indicates a YCbCr->RGB transform at the block level. Although nothing
explicitly states it, this would assume the actual content is planar
RGB.
Currently unsupported, but the one sequence I found using it flagged
every mb that way, actually meaning the content was YCbCr, and thus
best left to the output format to decide what to do of it.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-26 17:35:04 +02:00
Christophe Gisquet
e4b7c3a9f2
dnxhddec: proper rule for interlaced mb flag
...
It currently only applies to CID 1260, but this flag is dependent on
a higher-level flag located in the header.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-26 16:34:27 +02:00
Christophe Gisquet
e19ea0218a
dnxhddec: indicate colorspace
...
It is supposed to only old BT.709 colorspaces.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-26 01:07:40 +02:00
Christophe Gisquet
2801a1352d
dnxhddec: decode and use interlace mb flag
...
This bit is 1 in some samples, and seems to coincide with interlaced
mbs and CID1260. 2008 specs do not know about it, and maintain qscale
is 11 bits. This looks oversized, but may help larger bitdepths.
Currently, it leads to an obviously incorrect qscale value, meaning
its syntax is shifted by 1. However, reading 11 bits also leads to
obviously incorrect decoding: qscale seems to be 10 bits.
However, as most profiles still have 11bits qscale, the feature is
restricted to the CID1260 profile.
The encoder writes 12 bits of syntax, last and first bits always 0,
which is now somewhat inconsistent with the decoder, but ends up with
the same effect (progressive + reserved bit).
Partially fixes ticket #4876 .
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-25 20:41:19 +02:00
Michael Niedermayer
444e9874a7
Merge commit 'def97856de6021965db86c25a732d78689bd6bb0'
...
* commit 'def97856de6021965db86c25a732d78689bd6bb0':
lavc: AV-prefix all codec capabilities
Conflicts:
cmdutils.c
ffmpeg.c
ffplay.c
libavcodec/8svx.c
libavcodec/aacenc.c
libavcodec/ac3dec.c
libavcodec/adpcm.c
libavcodec/alac.c
libavcodec/atrac3plusdec.c
libavcodec/bink.c
libavcodec/dnxhddec.c
libavcodec/dvdec.c
libavcodec/dvenc.c
libavcodec/ffv1dec.c
libavcodec/ffv1enc.c
libavcodec/fic.c
libavcodec/flacdec.c
libavcodec/flacenc.c
libavcodec/flvdec.c
libavcodec/fraps.c
libavcodec/frwu.c
libavcodec/gifdec.c
libavcodec/h261dec.c
libavcodec/hevc.c
libavcodec/iff.c
libavcodec/imc.c
libavcodec/libopenjpegdec.c
libavcodec/libvo-aacenc.c
libavcodec/libvorbisenc.c
libavcodec/libvpxdec.c
libavcodec/libvpxenc.c
libavcodec/libx264.c
libavcodec/mjpegbdec.c
libavcodec/mjpegdec.c
libavcodec/mpegaudiodec_float.c
libavcodec/msmpeg4dec.c
libavcodec/mxpegdec.c
libavcodec/nvenc_h264.c
libavcodec/nvenc_hevc.c
libavcodec/pngdec.c
libavcodec/qpeg.c
libavcodec/ra288.c
libavcodec/rv10.c
libavcodec/s302m.c
libavcodec/sp5xdec.c
libavcodec/takdec.c
libavcodec/tiff.c
libavcodec/tta.c
libavcodec/utils.c
libavcodec/v210dec.c
libavcodec/vp6.c
libavcodec/vp9.c
libavcodec/wavpack.c
libavcodec/yop.c
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-27 22:50:18 +02:00
Michael Niedermayer
94d68a41fa
Merge commit '7c6eb0a1b7bf1aac7f033a7ec6d8cacc3b5c2615'
...
* commit '7c6eb0a1b7bf1aac7f033a7ec6d8cacc3b5c2615':
lavc: AV-prefix all codec flags
Conflicts:
doc/examples/muxing.c
ffmpeg.c
ffmpeg_opt.c
ffplay.c
libavcodec/aacdec.c
libavcodec/aacenc.c
libavcodec/ac3dec.c
libavcodec/ac3enc_float.c
libavcodec/atrac1.c
libavcodec/atrac3.c
libavcodec/atrac3plusdec.c
libavcodec/dcadec.c
libavcodec/ffv1enc.c
libavcodec/h264.c
libavcodec/h264_loopfilter.c
libavcodec/h264_mb.c
libavcodec/imc.c
libavcodec/libmp3lame.c
libavcodec/libtheoraenc.c
libavcodec/libtwolame.c
libavcodec/libvpxenc.c
libavcodec/libxavs.c
libavcodec/libxvid.c
libavcodec/mpeg12dec.c
libavcodec/mpeg12enc.c
libavcodec/mpegaudiodec_template.c
libavcodec/mpegvideo.c
libavcodec/mpegvideo_enc.c
libavcodec/mpegvideo_motion.c
libavcodec/nellymoserdec.c
libavcodec/nellymoserenc.c
libavcodec/nvenc.c
libavcodec/on2avc.c
libavcodec/options_table.h
libavcodec/opus_celt.c
libavcodec/pngenc.c
libavcodec/ra288.c
libavcodec/ratecontrol.c
libavcodec/twinvq.c
libavcodec/vc1_block.c
libavcodec/vc1_loopfilter.c
libavcodec/vc1_mc.c
libavcodec/vc1dec.c
libavcodec/vorbisdec.c
libavcodec/vp3.c
libavcodec/wma.c
libavcodec/wmaprodec.c
libavcodec/x86/hpeldsp_init.c
libavcodec/x86/me_cmp_init.c
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-27 22:10:35 +02:00
Vittorio Giovara
def97856de
lavc: AV-prefix all codec capabilities
...
Express bitfields more simply.
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-07-27 15:24:58 +01:00
Vittorio Giovara
7c6eb0a1b7
lavc: AV-prefix all codec flags
...
Convert doxygen to multiline and express bitfields more simply.
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-07-27 15:24:58 +01:00
Michael Niedermayer
53d2b69b72
Merge commit 'd84429d41e24437536907af1e6b73197ecf3f6db'
...
* commit 'd84429d41e24437536907af1e6b73197ecf3f6db':
dnxhd: Print unknown header when found
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-13 22:11:04 +02:00
Vittorio Giovara
d84429d41e
dnxhd: Print unknown header when found
2015-05-12 16:30:48 +01:00
Carl Eugen Hoyos
3ecb82dd41
dnxhddec: Fix pixel format change
...
Regression introduced in 598f7d046c
.
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-05-01 14:52:24 +01:00
Michael Niedermayer
8f7b022c8c
Merge commit '6a85dfc830f51f1f5c2d36d4182d265c1ea3ba25'
...
* commit '6a85dfc830f51f1f5c2d36d4182d265c1ea3ba25':
lavc: Replace av_dlog and tprintf with internal macros
Conflicts:
libavcodec/aacdec.c
libavcodec/audio_frame_queue.c
libavcodec/bitstream.c
libavcodec/dcadec.c
libavcodec/dnxhddec.c
libavcodec/dvbsubdec.c
libavcodec/dvdec.c
libavcodec/dvdsubdec.c
libavcodec/get_bits.h
libavcodec/gifdec.c
libavcodec/h264.h
libavcodec/h264_cabac.c
libavcodec/h264_cavlc.c
libavcodec/h264_loopfilter.c
libavcodec/h264_refs.c
libavcodec/imc.c
libavcodec/interplayvideo.c
libavcodec/jpeglsdec.c
libavcodec/libopencore-amr.c
libavcodec/mjpegdec.c
libavcodec/mpeg12dec.c
libavcodec/mpegvideo_enc.c
libavcodec/mpegvideo_parser.c
libavcodec/pngdec.c
libavcodec/ratecontrol.c
libavcodec/rv10.c
libavcodec/svq1dec.c
libavcodec/vqavideo.c
libavcodec/wmadec.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-20 04:10:10 +02:00
Vittorio Giovara
6a85dfc830
lavc: Replace av_dlog and tprintf with internal macros
2015-04-19 12:41:59 +01:00
Michael Niedermayer
72a580268f
Merge commit '5980c924e309ae1dde8bd52d9938f94ff02602eb'
...
* commit '5980c924e309ae1dde8bd52d9938f94ff02602eb':
dnxhd: Log the selected profile id
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-09 20:26:18 +02:00
Vittorio Giovara
5980c924e3
dnxhd: Log the selected profile id
2015-04-09 13:51:58 +02:00
Carl Eugen Hoyos
dcac15a84c
lavc/dnxhd: Fix pix_fmt change.
...
Fixes ticket #4400 .
2015-03-28 17:36:02 +01:00
Michael Niedermayer
77bd35d76d
avcodec/dnxhddec: reset cur_field for non interlaced frames
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-19 23:56:31 +01:00
Michael Niedermayer
d3bd943108
avcodec/dnxhddec: Reset is_444 if format is not 444
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-19 23:33:36 +01:00
Michael Niedermayer
2c660e34cf
avcodec/dnxhddec: Check that the frame is interlaced before using cur_field
...
Fixes Ticket4227
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-19 23:28:39 +01:00
Michael Niedermayer
56252a5e09
Merge commit '1a07df31128da3a0020b66502399989b91770d44'
...
* commit '1a07df31128da3a0020b66502399989b91770d44':
DNxHD: Add support for id 1258 (DNx100 960x720@8)
Conflicts:
Changelog
libavcodec/dnxhddata.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-01-29 21:21:49 +01:00
Michael Niedermayer
64e7cf1253
Merge commit '598f7d046cbf306706623210c5baafa3b7cd1df3'
...
* commit '598f7d046cbf306706623210c5baafa3b7cd1df3':
DNxHD: Simplify pixel format detection
Conflicts:
libavcodec/dnxhddec.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-01-29 20:54:25 +01:00
Michael Niedermayer
e5b7e2224f
Merge commit '41e03e284ee7b0d4caa3a5d28681ad46e3105d65'
...
* commit '41e03e284ee7b0d4caa3a5d28681ad46e3105d65':
DNxHD: More verbose error messages
Conflicts:
libavcodec/dnxhddec.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-01-29 20:38:35 +01:00
Vittorio Giovara
1a07df3112
DNxHD: Add support for id 1258 (DNx100 960x720@8)
...
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-01-29 15:04:57 +00:00
Vittorio Giovara
598f7d046c
DNxHD: Simplify pixel format detection
...
Error out in case of unknown values.
2015-01-29 15:04:46 +00:00
Vittorio Giovara
41e03e284e
DNxHD: More verbose error messages
2015-01-29 15:04:35 +00:00
Michael Niedermayer
f3c0e0bf6f
avcodec/dnxhddec: treat pix_fmt like width/height
...
Fixes out of array accesses
Fixes: asan_heap-oob_22c9a39_16_015.mxf
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-29 00:57:52 +01:00
Michael Niedermayer
581b5f0b9b
Merge commit 'e3fcb14347466095839c2a3c47ebecff02da891e'
...
* commit 'e3fcb14347466095839c2a3c47ebecff02da891e':
dsputil: Split off IDCT bits into their own context
Conflicts:
configure
libavcodec/aic.c
libavcodec/arm/Makefile
libavcodec/arm/dsputil_init_arm.c
libavcodec/arm/dsputil_init_armv6.c
libavcodec/asvdec.c
libavcodec/dnxhdenc.c
libavcodec/dsputil.c
libavcodec/dvdec.c
libavcodec/dxva2_mpeg2.c
libavcodec/intrax8.c
libavcodec/mdec.c
libavcodec/mjpegdec.c
libavcodec/mjpegenc_common.h
libavcodec/mpegvideo.c
libavcodec/ppc/dsputil_altivec.h
libavcodec/ppc/dsputil_ppc.c
libavcodec/ppc/idctdsp.c
libavcodec/x86/Makefile
libavcodec/x86/dsputil_init.c
libavcodec/x86/dsputil_mmx.c
libavcodec/x86/dsputil_x86.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-01 15:22:11 +02:00
Diego Biurrun
e3fcb14347
dsputil: Split off IDCT bits into their own context
2014-06-30 07:58:46 -07:00
Michael Niedermayer
2b05db4f81
Merge commit 'e74433a8e6fc00c8dbde293c97a3e45384c2c1d9'
...
* commit 'e74433a8e6fc00c8dbde293c97a3e45384c2c1d9':
dsputil: Split clear_block*/fill_block* off into a separate context
Conflicts:
configure
libavcodec/asvdec.c
libavcodec/dnxhddec.c
libavcodec/dnxhdenc.c
libavcodec/dsputil.h
libavcodec/eamad.c
libavcodec/intrax8.c
libavcodec/mjpegdec.c
libavcodec/ppc/dsputil_ppc.c
libavcodec/vc1dec.c
libavcodec/x86/dsputil_init.c
libavcodec/x86/dsputil_mmx.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-19 04:54:38 +02:00
Diego Biurrun
e74433a8e6
dsputil: Split clear_block*/fill_block* off into a separate context
2014-06-18 14:07:23 -07:00
Michael Niedermayer
bad101ab8a
Merge commit '89ef08c992c484a46711b1a68a988303679c288e'
...
* commit '89ef08c992c484a46711b1a68a988303679c288e':
DNxHD: K&R formatting cosmetics
Conflicts:
libavcodec/dnxhd_parser.c
libavcodec/dnxhddec.c
libavcodec/dnxhdenc.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-11 14:04:10 +02:00
Vittorio Giovara
89ef08c992
DNxHD: K&R formatting cosmetics
2014-04-11 12:09:08 +02:00
Michael Niedermayer
51290068fa
Merge commit 'e95018b694c0774477abec5bbf86ecc7946a9a28'
...
* commit 'e95018b694c0774477abec5bbf86ecc7946a9a28':
dnxhd: Support DNx444
Conflicts:
Changelog
libavcodec/dnxhddata.c
libavcodec/dnxhddec.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-10 03:42:06 +01:00
Michael Niedermayer
8c596864cd
Merge commit '28e508a94677d5dffde009c5f8ca7d6a4d2ca8e8'
...
* commit '28e508a94677d5dffde009c5f8ca7d6a4d2ca8e8':
dnxhddec: return proper error code
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-09 20:52:05 +01:00
Kostya Shishkov
e95018b694
dnxhd: Support DNx444
...
Bug-Id: 99
Bug-Id: videolan/9620
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-02-09 19:53:35 +01:00
Alexandra Khirnova
28e508a946
dnxhddec: return proper error code
...
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-02-09 18:36:16 +01:00
Michael Niedermayer
965fa6b0d9
Merge commit 'fb0c9d41d685abb58575c5482ca33b8cd457c5ec'
...
* commit 'fb0c9d41d685abb58575c5482ca33b8cd457c5ec':
avutil: remove timer.h include from internal.h
Conflicts:
libavcodec/ffv1dec.c
libavutil/internal.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-26 01:54:55 +01:00