Commit Graph

38837 Commits

Author SHA1 Message Date
Sean McGovern 61b203ffe6 configure: detect Solaris libc
Add preprocessor flags for API availability as necessary.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-12-09 11:46:44 +01:00
Alexandra Khirnova 9b8d11a76a avcodec: Use av_reallocp where suitable
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-12-09 12:27:51 +02:00
Anton Khirnov d4f1188d1a dv: use AVFrame API properly 2013-12-09 09:10:14 +01:00
John Stebbins c9ca220ef2 ac3dec: make drc_scale exponentially
The a52 spec suggests that "partial compression" should scale the
drc value in this manner.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-12-09 08:54:42 +01:00
Anton Khirnov 37a749012a lavc: rework handling of refcounted_frames=0
Use only proper AVFrame API (no assigning of whole frames, since that
hardcodes sizeof(AVFrame) into lavc).

Make a copy of the side data, so the caller can use av_frame_unref/free
on non-refcounted frames, eliminating the need for
avcodec_get_frame_defaults()/avcodec_free_frame().
2013-12-09 08:54:29 +01:00
Anton Khirnov df7aba52b5 frame: cosmetics, reindent 2013-12-09 08:45:08 +01:00
Anton Khirnov c342132fa8 frame: copy flags in av_frame_copy_props()
Flags can be considered metadata (at least those that are defined now).
2013-12-09 08:45:01 +01:00
Anton Khirnov a1ee164869 lavc/decode_video(): always unref the frame if there is no output in decode_video
Not just on failure. This is the same thing that is done in the audio
path and should prevent leaks in decoders that allocate a frame, but
then end up not writing into it.
2013-12-09 08:44:34 +01:00
Anton Khirnov 85f947aefb lavc: remove a pointless check in decode_audio4()
av_frame_unref() works fine on unallocated frames.
2013-12-09 08:44:24 +01:00
Anton Khirnov d4f0f2d1e8 lavc: use buf[0] instead of data[0] as the indicator of an allocated frame
data[0] may be NULL for valid frames with hwaccel pixel formats.
2013-12-09 08:44:11 +01:00
Anton Khirnov e5419709f5 lavc: remove the extended_data workarounds.
All decoders should now handle it properly.
2013-12-09 08:42:52 +01:00
Anton Khirnov d351ef47d0 pthread_frame: use the AVFrame API properly.
Remove the extended_data workaround, all decoders should now handle this
properly.
2013-12-09 08:42:25 +01:00
Anton Khirnov b605b123ef mxpegdec: use the AVFrame API properly. 2013-12-09 08:41:57 +01:00
Anton Khirnov afa21a12bf p*menc: use the AVFrame API properly. 2013-12-09 08:41:20 +01:00
Anton Khirnov e2274aa555 mjpegdec: use the AVFrame API properly. 2013-12-09 08:40:29 +01:00
d s f0b234ab9e avformat: AviSynth demuxer rewrite
Directly loads AviSynth through LoadLibrary instead of relying on
Video for Windows, and supports using AvxSynth (via dlopen) to
open scripts on Linux and OS X.

Error messages from AviSynth/AvxSynth are now reported through
av_log and exit, rather than the traditional behavior of generating
an error video that the user would need to watch to diagnose.

The main rewrite was authored by d s <avxsynth.testing@gmail.com>
from the AvxSynth team, with additional contributions by

Oka Motofumi <chikuzen.mo@gmail.com>
Stephen Hutchinson <qyot27@gmail.com>
Diego Biurrun <diego@biurrun.de>
Anton Khirnov <anton@khirnov.net>

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-12-08 21:54:50 +01:00
Diego Biurrun 19c20a0a1a configure: Move adding of compat objects out of libc detection 2013-12-08 21:09:02 +01:00
Diego Biurrun 4958f35a2e dsputil: Move apply_window_int16 to ac3dsp
The (optimized) functions are used nowhere else.
2013-12-08 17:57:15 +01:00
Diego Biurrun 120797e2ef configure: Separate MinGW32 and MinGW64 libc handling 2013-12-08 01:00:36 +01:00
Guillaume Martres 9aa053cede libvpx: do not mark VP9 as experimental when using libvpx >= 1.3.0
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-12-08 00:28:27 +01:00
Michael Niedermayer b6a9719941 dcadec: Decode LFE to avoid adding random data when downmixing with LFE
Signed-off-by: Tim Walker <tdskywalker@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-12-06 23:37:05 +01:00
Justin Ruggles d085f80fa1 webp: add a special case for a huffman table with only 1 symbol
The vlc reader cannot handle 0-bit huffman codes. For most
situations WebP uses the "simple" huffman coding for this case,
but that will only handle symbols up to 255. For the LZ77 distance
codes, larger symbol values are needed, so it can happen in rare
cases that a normal huffman table is used that only has a single
symbol.
2013-12-05 20:37:06 -05:00
Justin Ruggles f51e3a1971 webp: do not call av_frame_free() on the user-provided frame
Fixes double-free on error.
2013-12-05 20:36:54 -05:00
Anton Khirnov b73a8922d8 ljpegenc: split yuv encoding into a separate function 2013-12-05 13:38:07 +01:00
Anton Khirnov fa4476815d ljpegenc: split bgr encoding into a separate function 2013-12-05 13:37:56 +01:00
Anton Khirnov daffed3b17 ljpegenc: accept bgr24 instead of bgra
The alpha plane is not encoded.
2013-12-05 13:37:41 +01:00
Anton Khirnov 0cdbc4d393 ljpegenc: rename the encoding function.
The new name is more consistent with the rest of Libav.
2013-12-05 13:37:32 +01:00
Anton Khirnov 72c0b8f724 ljpeg: remove a commented-out line 2013-12-05 13:37:09 +01:00
Anton Khirnov 24abd806ea ljpegenc: deMpegEncContextize
The encoder uses almost none of the mpegvideo infrastructure, only some
fields from MpegEncContext.

The FATE results change because now an all-zero quant matrix is written
into the file. Since it is not used for anything for ljpeg, this should
not be a problem.
2013-12-05 13:35:55 +01:00
Anton Khirnov 86eb2eaac6 mjpegenc: do not pass MpegEncContext to ff_mjpeg_encode_dc()
This will allow deMpegEncContextizing the LJPEG encoder.
2013-12-05 13:35:30 +01:00
Anton Khirnov 3360ad9955 mjpegenc: do not pass MpegEncContext to ff_mjpeg_encode_picture_trailer()
This will allow deMpegEncContextizing the LJPEG encoder.
2013-12-05 13:35:15 +01:00
Anton Khirnov 058d5f2feb mjpegenc: do not pass MpegEncContext to ff_mjpeg_encode_picture_header()
This will allow deMpegEncContextizing the LJPEG encoder.
2013-12-05 13:34:26 +01:00
Anton Khirnov 6d70639c7d mjpegenc: do not pass MpegEncContext to jpeg_table_header()
Pass the three needed fields from it directly.
This will allow to deMpegEncContextize the LJPEG encoder.
2013-12-05 13:34:13 +01:00
Anton Khirnov e1eaaec765 mjpegenc: remove commented out never-to-be-finished WIP cruft 2013-12-05 13:34:01 +01:00
Anton Khirnov ff506c75b7 mjpegenc: do not pass MpegEncContext to put_huffman_table()
It only needs PutBitContext from it, so pass that directly.
2013-12-05 13:33:40 +01:00
Anton Khirnov a1ba1f20b3 mjpegenc: cosmetics, reformat jpeg_put_comments() 2013-12-05 13:33:29 +01:00
Anton Khirnov 0812f5a40a mjpegenc: write the JFIF header if the sample aspect ratio is set
MpegEncContext.aspect_ratio_info is never set for mjpeg, so this was
never written before.
2013-12-05 13:28:32 +01:00
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 58a868968d FATE: drop the last partial frame in the wmv8-drm test
This has already been done in eb066a4ce9,
but the number of frames produced from that file changed due to
timestamps changes since then.
2013-12-05 13:27:52 +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