1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-23 12:43:46 +02:00
Commit Graph

18567 Commits

Author SHA1 Message Date
Anton Khirnov
66499f34b5 mpegvideo: do not set current_picture_ptr in decoders
This code was originally added in
5f1948111a to h263 to set decoded frame
pts to some random numbers (removed in
a1c5cc429d) and then cargo culted to other
decoders.

The code is left in h263dec for now, since some part of the decoder
(apparently OBMC) relies on the specific previous frame to be reused.
2013-12-05 13:28:05 +01:00
Anton Khirnov
ac1fc92ea4 vc1dec: move setting repeat_pict after frame_start() has been called.
This will allow removing the hacks where each decoder sets
current_picture_ptr on its own.
2013-12-05 13:27:24 +01:00
Anton Khirnov
282c6a1a0e mpegvideo: make ff_release_unused_pictures() static
It is only called from one place in mpegvideo.c now. Also remove the
remove_current parameter, which is always 1.
2013-12-05 13:26:50 +01:00
Anton Khirnov
c99307caee mpegvideo: make frame_size_alloc() static.
It is not called from outside of mpegvideo.c anymore.
2013-12-05 13:25:46 +01:00
Anton Khirnov
0b0a7a751d mpegvideo: move encode-only parts of common_end() to encode_end() 2013-12-05 13:25:26 +01:00
Anton Khirnov
d0d111d059 mpegvideo: remove commented out cruft from ff_MPV_frame_end() 2013-12-05 13:25:15 +01:00
Anton Khirnov
381a722562 mpegvideo: split the encoding-only parts of ff_MPV_frame_end() into a separate function 2013-12-05 13:23:55 +01:00
Anton Khirnov
b7254288d2 mpegvideo: do not update last_non_b_pict_type in update_thread_context()
It is used for encoding only.
2013-12-05 13:23:33 +01:00
Anton Khirnov
1f8eb69079 mpegvideo: move encoding-only initialization from common_init() to encode_init() 2013-12-05 13:23:03 +01:00
Anton Khirnov
bedf952bb8 mpegvideo: move setting encoding-only vars from common_defaults() to encode_defaults() 2013-12-05 13:22:55 +01:00
Anton Khirnov
2cab011f0f mpegvideo: don't copy input_picture_number in update_thread_context()
It is encoding-only, frame threading is not used for encoding.
2013-12-05 13:22:46 +01:00
Anton Khirnov
ff7ffe4809 mpeg4videodec: move showed_packed_warning from MpegEncContext to Mpeg4DecContext 2013-12-05 13:22:37 +01:00
Anton Khirnov
f7d228676c mpeg4videodec: move intra_dc_threshold from MpegEncContext to Mpeg4DecContext 2013-12-05 13:22:18 +01:00
Anton Khirnov
a097f0049b mpeg12dec: move first_slice from MpegEncContext to Mpeg1Context 2013-12-05 13:22:03 +01:00
Anton Khirnov
ff300e435e mpegvideo: remove an unused variable 2013-12-05 13:21:57 +01:00
Anton Khirnov
e41ff4210a mpeg4videodec: move use_intra_dc_vlc from MpegEncContext to Mpeg4DecContext 2013-12-05 13:19:22 +01:00
Diego Biurrun
3d7c84747d x86: Initialize mmxext after amd3dnow optimizations
The mmxext optimizations should be at least equally fast if available and
amd3dnow optimizations are being deprecated. Thus the former should
override the latter, not the other way around.
2013-12-04 18:52:48 +01:00
Diego Biurrun
97d19c2fec dv: Split off DV video encoder into its own file 2013-12-02 13:13:09 +01:00
Diego Biurrun
21710ea821 dv: Move DV VLC data tables out of header file 2013-12-02 13:13:09 +01:00
Diego Biurrun
7ffaa19570 dsputil: x86: Move ff_inv_zigzag_direct16 table init to mpegvideo
The table is MMX-specific and used nowhere else.
2013-12-02 04:05:18 +01:00
Tim Walker
7dc827b709 dcadec: Add some logging before returning on error
Based on a patch by Michael Niedermayer.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-11-30 13:01:35 +01:00
Kostya Shishkov
01f6df01b6 go2meeting: disallow tile dimensions that are not multiple of 16
Original decoder seems to always use 176x128 tiles anyway and this helps
avoiding lots of issues with odd tile sizes in fuzzed files.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-11-29 17:37:59 +01:00
Anton Khirnov
e026ee0446 mpeg4videodec: move sprite_{shift,traj} from MpegEncContext to Mpeg4DecContext 2013-11-29 17:37:16 +01:00
Anton Khirnov
513d849bb6 mpeg4videodec: move num_sprite_warping_points from MpegEncContext to Mpeg4DecContext 2013-11-29 17:36:57 +01:00
Anton Khirnov
9ba3fc3e3d mpeg4videodec: move sprite_brightness_change from MpegEncContext to Mpeg4DecContext 2013-11-29 17:36:43 +01:00
Anton Khirnov
58c120a929 mpeg4videodec: move scalability from MpegEncContext to Mpeg4DecContext 2013-11-29 17:36:28 +01:00
Anton Khirnov
6e81597d5a mpeg4videodec: move enhancement_type from MpegEncContext to Mpeg4DecContext 2013-11-29 17:36:05 +01:00
Anton Khirnov
2992afda83 mpeg4videodec: remove a write-only variable from MpegEncContext 2013-11-29 17:35:57 +01:00
Anton Khirnov
3b1c0f686d mpeg4videodec: move new_pred from MpegEncContext to Mpeg4DecContext 2013-11-29 17:35:13 +01:00
Anton Khirnov
e89247debd mpeg4videodec: replace MpegEncContext.reduced_res_vop with a local variable 2013-11-29 17:34:34 +01:00
Anton Khirnov
8cebc9eaac mpeg4videodec: remove a write-only variable from MpegEncContext 2013-11-29 14:19:48 +01:00
Anton Khirnov
b1aacd5668 mpeg4videodec: move t_frame from MpegEncContext to Mpeg4DecContext 2013-11-29 14:19:48 +01:00
Anton Khirnov
0388907400 mpeg4videodec: move cplx_estimation_* fields from MpegEncContext to Mpeg4DecContext 2013-11-29 14:19:48 +01:00
Anton Khirnov
43af264de8 mpeg4videodec: move mpeg4-specific bug workaround variables from MpegEncContext to Mpeg4DecContext 2013-11-29 14:19:48 +01:00
Anton Khirnov
e2ceb17642 mpeg4videodec: move mpeg4-specific post-frame-decode code from h264dec to mpeg4videodec 2013-11-29 14:19:47 +01:00
Anton Khirnov
b452d5ae86 mpeg4videodec: move mpeg4-specific bug detection from h263 generic code to mpeg4 2013-11-29 14:19:47 +01:00
Anton Khirnov
48e1394095 mpeg4videodec: move MpegEncContext.resync_marker into Mpeg4DecContext. 2013-11-29 14:19:47 +01:00
Anton Khirnov
c2f7417eeb vc1: move MpegEncContext.resync_marker into VC1Context.
The field still remains in MpegEncContext because it is used by the
mpeg4 decoder.
2013-11-29 14:19:47 +01:00
Anton Khirnov
a5a71992ca mpeg4videoenc: don't set MpegEncContext.resync_marker
It is only used in one place immediately after it is set.
2013-11-29 14:19:47 +01:00
Anton Khirnov
ad09f52586 h263dec: remove commented out cruft 2013-11-29 14:19:47 +01:00
Anton Khirnov
bc5abfb19e mpeg4videodec: move MpegEncContext.rvlc to Mpeg4DecContext 2013-11-29 14:19:47 +01:00
Anton Khirnov
9f0617d213 mpeg4videodec: remove write-only sprite variables from MpegEncContext 2013-11-29 14:19:47 +01:00
Anton Khirnov
1a89025793 mpeg4videodec: move MpegEncContext.vol_sprite_usage to Mpeg4DecContext 2013-11-29 14:19:47 +01:00
Anton Khirnov
75bd07f732 mpeg4videoenc: write 0 instead of vol_sprite_usage
That field is never set for encoding.
2013-11-29 14:19:47 +01:00
Anton Khirnov
e62a43f6b1 mpeg4videodec: move MpegEncContext.time_increment_bits to Mpeg4DecContext
The field remains in MpegEncContext for use in the encoder.
2013-11-29 14:19:47 +01:00
Anton Khirnov
ee8af2dd99 mpeg4videodec: move MpegEncContext.shape to Mpeg4DecContext 2013-11-29 14:19:47 +01:00
Anton Khirnov
35e0833d41 mpeg4videodec: add a mpeg4-specific private context. 2013-11-29 14:19:47 +01:00
Tim Walker
3c8507a845 dcadec: add disable_xch private option.
This supplements the deprecated request_channels-based control of XCh decoding.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-11-28 22:02:53 +01:00
Tim Walker
220494ad0b dcadec: treat all 2-channel modes as Stereo in dca_downmix.
The check for (prim_channels > 2) before calling dca_downmix made these
cases unreachable, but now 2.1 layouts will go through the downmix code.
Having dual mono, Lt/Rt and sum-difference layouts print errors when
regular Stereo doesn't seems pointless.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-11-28 22:02:53 +01:00
Tim Walker
aaa44d0299 dca: support mixing LFE in dca_downmix.
Embedded downmix coefficients can use this.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-11-28 22:02:53 +01:00
Tim Walker
149438cfe5 dca: improve default stereo downmix coefficients.
Previous coefficients were producing a non-normalized, incorrect Lt/Rt downmix.

The new coefficients produce a standard Lo/Ro downmix with 3dB attenuation.

This should match the typical default coefficients used by DTS encoders.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-11-28 22:02:53 +01:00
Tim Walker
44b17d794a dca: extract core substream's embedded downmix coeffcient codes, if present.
As per ETSI TS 102 114 V1.4.1 specification.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-11-28 22:02:53 +01:00
Tim Walker
27245b4e1b dca: remove embedded downmix coefficient extraction.
It was based on an old, seemingly incorrect specification, so default
coefficients were always used anyway.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-11-28 22:02:50 +01:00
Tim Walker
b6d5e6aa10 dca: convert dca_default_coeffs to float.
Easier to read, modify, and avoids relying on an outdated table.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-11-28 21:38:22 +01:00
Tim Walker
25609b63d2 dcadec: store the stereo downmix coefficients as float in the DCAContext.
The 7-bit codes previously used are absent from the ETSI 102 114 V1.4.1 spec.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-11-28 21:35:22 +01:00
Tim Walker
89de5157b1 dcadec: implement request_channel_layout.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-11-28 21:10:29 +01:00
Diego Biurrun
cf7860db60 x86: dsputil: Suppress deprecation warnings for XvMC bits
These parts are scheduled for removal on the next version bump.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2013-11-28 16:04:30 +01:00
Michael Niedermayer
d1916d13e2 dsputil/pngdsp: fix signed/unsigned type in end comparison
Fixes out of array accesses and integer overflows.
2013-11-28 15:37:55 +01:00
Anton Khirnov
8733799392 h263dec: sanitize a condition.
Call ff_mpeg4_decode_picture_header() only when the decoder has the
MPEG4 codec id, not based on a vaguely related value of h263_pred.
2013-11-27 22:24:50 +01:00
Anton Khirnov
4d388c0cd0 h264_refs: make sure not to write over the bounds of the default ref list
Fixes invalid writes.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2013-11-27 22:24:40 +01:00
Anton Khirnov
c6080d8900 lavc: remove mp3_header_(de)compress bitstream filters
They mangle the mp3 header in a non-standard way to save a few bytes.
People who care about space so much should just use a more efficient
codec.
2013-11-26 09:27:50 +01:00
John Stebbins
1eaac1d6f7 mpeg12dec: Extract CC user data into frame side data
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-11-26 08:37:22 +01:00
Kostya Shishkov
a16577d985 MSN Audio support
This is essentially a MS GSM decoder extension that supports more
sampling rates and lower bitrates.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-11-26 08:31:10 +01:00
Kostya Shishkov
56d061ce9d metasound: add last missing modes (8kHz @ 6kbps per channel)
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-11-26 08:29:42 +01:00
Kostya Shishkov
de44dfc7c0 vc1: Reset numref if fieldmode is not set
There are samples in the wild with B-frames and P-frames with different
interlace mode.

CC: libav-stable@libav.org
Reported-by: Jean-Baptiste Kempf <jb@videolan.org>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-11-26 00:34:12 +01:00
Diego Biurrun
5145ccf02b aacsbr: Add some const casts to silence warnings in ff_sbr_apply() 2013-11-25 21:04:29 +01:00
Diego Biurrun
8f8bc92365 Add missing #includes for *INT64_MAX and *INT64_C 2013-11-23 21:55:52 +01:00
Diego Biurrun
0eeeb9647e mpegaudiodec: Consistently handle fixed/float templating 2013-11-23 21:36:49 +01:00
Tim Walker
48b24bd2d2 ac3dec: Fix out-of-array read
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-11-23 21:36:49 +01:00
Alexandra Khirnova
6f270da61b libschroedingerenc: do not assert on values from external libraries
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-11-23 12:08:53 +01:00
Tim Walker
d4df02131b ac3dec: Remove write-only channel_layout field from AC3DecodeContext
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-11-22 23:27:34 +01:00
Tim Walker
b532854622 ac3: implement request_channel_layout.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-11-22 23:27:33 +01:00
Diego Biurrun
0ba8ba165b aacps: Adjust some const qualifiers to suppress warnings 2013-11-22 08:21:38 +01:00
Anton Khirnov
430d121964 pcx: round up in bits->bytes conversion in a buffer size check
Fixes invalid reads.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2013-11-21 20:58:27 +01:00
Anton Khirnov
c918e08b9c truemotion1: make sure index does not go out of bounds
Fixes invalid reads.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2013-11-21 20:58:08 +01:00
Anton Khirnov
de4ec972c0 vc1: fix a memleak.
Happens on a B-frame when neither low_delay nor last_picture_ptr is set
(probably corrupted streams only).

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
2013-11-21 20:57:36 +01:00
Anton Khirnov
ca41c72c6d motionpixels: clip VLC codes.
Fixes invalid reads.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2013-11-21 20:57:20 +01:00
Anton Khirnov
f0259a587e h264: check buffer size before accessing it
Fixes invalid reads.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2013-11-21 20:54:20 +01:00
Anton Khirnov
1f3e56b6dc gifdec: convert to bytestream2 2013-11-21 20:53:06 +01:00
Anton Khirnov
c453723ad7 gifdec: check that the image dimensions are non-zero
Also add an error message an return a more suitable error code
(INVALIDDATA, not EINVAL);
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2013-11-21 20:52:42 +01:00
Anton Khirnov
074c769de9 h264_cavlc: check the size of the intra PCM data.
Fixes invalid reads.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2013-11-21 20:52:34 +01:00
Diego Biurrun
ac0e03bab0 dct/fft: Give consistent names to fixed/float template files 2013-11-21 15:59:46 +01:00
Vittorio Giovara
305d3d9f1f mpeg4videoenc: restore macro parentheses
These were erroneously removed in 8769113acc.
2013-11-21 12:58:12 +01:00
Sean McGovern
a7b87ca911 libxavs: rename and fix a variable name
It was mis-spelled in b18c7c8d3d.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-11-20 21:06:31 +01:00
Tim Walker
ffb0af7f17 ac3dec: simplify an expression
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-11-19 18:52:17 +01:00
Diego Biurrun
57f13fd7e9 dv_tablegen: Remove CONFIG_SMALL preprocessor check
The code does in no way depend on CONFIG_SMALL.
2013-11-19 16:04:27 +01:00
Vittorio Giovara
6f1ec8edf2 avcodec.h: include version.h before using version macro 2013-11-19 14:48:36 +01:00
Vittorio Giovara
c673fc919c hevc_sei: drop unused parameter 2013-11-19 14:48:36 +01:00
Vittorio Giovara
d234c7a07c mpeg4videodec: K&R formatting cosmetics 2013-11-19 14:48:36 +01:00
Vittorio Giovara
8769113acc mpeg4videoenc: K&R formatting cosmetics 2013-11-19 14:48:36 +01:00
Kostya Shishkov
16e7b189c5 mpegvideo: Fix swapping of UV planes for VCR2 2013-11-19 02:05:51 +01:00
Tim Walker
69d4dbfd1f aac_ac3_parser: simplify an expression
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-11-19 02:02:53 +01:00
Tim Walker
37a3cac78c dcadec: simplify an expression
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-11-19 02:02:49 +01:00
Anton Khirnov
a553c6a347 lavc: use buf[0] instead of data[0] in checks whether a frame is allocated
data[0] may be NULL for valid frames with hwaccel pixel formats.
2013-11-18 18:09:48 +01:00
Anton Khirnov
1c01b0253e mpegvideo_enc: use the AVFrame API properly. 2013-11-16 17:51:10 +01:00
Anton Khirnov
a6064b12b4 ffv1: use the AVFrame API properly. 2013-11-16 17:50:51 +01:00
Anton Khirnov
706a92926c jpegls: use the AVFrame API properly. 2013-11-16 17:50:28 +01:00
Anton Khirnov
14b35bf065 huffyuv: use the AVFrame API properly. 2013-11-16 17:50:20 +01:00
Anton Khirnov
ffe04c3303 libxvid: use the AVFrame API properly. 2013-11-16 17:50:09 +01:00
Anton Khirnov
863a670e48 pcxenc: use the AVFrame API properly. 2013-11-16 17:49:47 +01:00