Commit Graph
100 Commits
Author SHA1 Message Date
Anton Khirnov 0b357a8095 AVOptions: do not range check flag options.
It does not make sense in the vast majority of use cases, no currently
defined AV_OPT_TYPE_FLAGS options in Libav set the range to anything
nontrivial, and many of those get it wrong (the "correct" range is
INT_MIN to INT_MAX so that the builtin constant "all" works).
2013-10-27 21:40:33 +01:00
Anton Khirnov 94603feb1b h264_ps: when parsing a VUI fails, only abort when explode is set
A VUI doesn't contain anything strictly necessary for decoding.
Apparently there are many samples with truncated VUIs in the wild, this
commit should allow decoding them.
2013-10-27 21:39:01 +01:00
Anton Khirnov ddc589ce98 avconv: drop a now useless variable 2013-10-27 21:32:37 +01:00
Anton Khirnov 834259528b fft-test: add a missing #include
stdio.h needed for printf since 7177df90a0
2013-10-26 09:11:22 +02:00
Anton Khirnov 68edd5be09 FATE: use proper comparison mode in the lavr tests 2013-10-15 19:11:49 +02:00
Anton Khirnov dd33637c18 tiny_psnr: switch f32 handling to floating point
Also add support for f64.
2013-10-15 19:10:33 +02:00
Anton Khirnov 16ea20c827 lavc doxy: extend/clarify avcodec_decode_audio4() doxy
Elaborate on flushing the decoder.
2013-10-12 15:10:21 +02:00
Anton Khirnov 66d3f5fd5c lavc doxy: remove false statements about alignment requirements.
The packet data does not need to be aligned.
2013-10-12 15:09:38 +02:00
Anton Khirnov 364af376f3 FATE: add lavr resampling tests 2013-10-12 15:07:46 +02:00
Anton Khirnov 9ab5f7107d FATE: add lavr mixing tests 2013-10-12 15:07:26 +02:00
Anton Khirnov df6737a55f audio_mix: fix channel order in mix_1_to_2_fltp_flt_c
CC:libav-stable@libav.org
2013-10-12 15:06:55 +02:00
Anton Khirnov 451606f7ce lavc: mark deprecated AVCodec.max_lowres for removal on next bump 2013-10-02 16:41:08 +02:00
Anton Khirnov 93370d1216 mxfdec: set audio timebase to 1/samplerate
Fixes sync in some samples (e.g. bugs 7581 and 8374 in VLC).
Based on a commit by Matthieu Bouron <matthieu.bouron@gmail.com>

Reported-by: Jean-Baptiste Kempf <jb@videolan.org>
CC: libav-stable@libav.org
2013-09-29 21:50:30 +02:00
Anton Khirnov 0767bfd199 lavfi: allow user-provided execute() callbacks 2013-09-28 08:06:19 +02:00
Anton Khirnov 38e15df148 avframe: note that linesize is not the usable data size 2013-09-28 07:35:50 +02:00
Anton Khirnov 5f4b1b1cbd lavc doxy: document that avcodec_flush_buffers() invalidates decoded frames 2013-09-24 17:34:00 +02:00
Anton Khirnov 2725f2d403 doc/filters: fix an option name in the unsharp docs 2013-09-24 17:22:11 +02:00
Anton Khirnov cab8c5f8e1 h264: do not reinitialize the global cabac tables at each slice header 2013-09-24 17:13:52 +02:00
Anton Khirnov e880418660 cabac: remove write-only h264_mps_state[] 2013-09-24 17:13:17 +02:00
Anton Khirnov 668643b923 matroskadec: check av_strdup() when setting defaults 2013-09-24 17:11:50 +02:00
Anton KhirnovandLuca Barbato 26f027fba1 lavf: fix the comparison in an overflow check
CC: libav-stable@libav.org

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-09-07 11:52:40 +02:00
Anton Khirnov 488b2984fe ape demuxer: check for EOF in potentially long loops
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2013-09-02 19:28:55 +02:00
Anton Khirnov a7c1689ded 4xm: check that bits per sample is strictly positive
Avoids a divide by zero.

Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2013-09-02 19:28:47 +02:00
Anton Khirnov df33a58e53 lavf: avoid integer overflow when estimating bitrate
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2013-09-02 19:28:29 +02:00
Anton Khirnov fab694dd39 lavf: move a variable declaration to the block where it's used 2013-09-02 19:28:19 +02:00
Anton Khirnov fe9bb61f9a pictordec: pass correct context to avpriv_request_sample
Fixes invalid reads.

Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2013-09-02 19:27:56 +02:00
Anton Khirnov 5f7aecde02 pictordec: break out of both decoding loops when y drops below 0
Otherwise picmemset can get called with negative y, resulting in an
invalid write.

Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2013-09-02 19:27:45 +02:00
Anton Khirnov 8aba7968dd vcr1: add sanity checks
Fixes invalid reads with corrupted files.

Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2013-09-02 19:27:33 +02:00
Anton Khirnov fa09e76010 FATE: add a TAK test 2013-08-08 22:59:42 +02:00
Anton Khirnov 488a0fa689 avconv: support -t as an input option.
It limits the duration of the data read from a given input.
2013-08-05 10:54:19 +02:00
Anton Khirnov 811bd07846 avconv: make input -ss accurate when transcoding
Insert (a)trim filters on the corresponding inputs, so the extra frames
are decoded and discarded.
2013-08-05 10:53:41 +02:00
Anton Khirnov 56ee3f9de7 avconv: distinguish between -ss 0 and -ss not being used
Using -ss 0 to drop frames with negative timestamps is a perfectly valid
use case.
2013-08-05 10:53:12 +02:00
Anton Khirnov 2e661f26f8 avconv: insert extra filters in the same way for both graph inputs and outputs
This will allow using the same code when one filter can be inserted both
on input and output.
2013-08-05 10:52:22 +02:00
Anton Khirnov 3799376dd3 lavfi/fifo: fix flushing when using request_samples
If any samples are still buffered when request_frame returns EOF, they
won't be returned currently.
2013-08-05 10:52:00 +02:00
Anton Khirnov 06cd4c5a68 avconv: fix usage of deprecated lavfi API 2013-08-05 10:51:41 +02:00
Anton Khirnov 612a5049d9 avserver: do not use a static string as a default for a string option
Fixes an invalid free.

Bug-id: 448
2013-08-04 18:47:22 +02:00
Anton Khirnov 51fc88e746 avconv: improve some variable names
'filter' is too generic, since the functions in question deal with
several filters.

Also add const qualifiers to those variables.
2013-08-04 15:46:19 +02:00
Anton Khirnov 77cc958f60 lavfi: add const to the AVFilter parameter of avfilter_graph_create_filter()
This function should never modify the filter.
2013-08-04 15:46:19 +02:00
Anton Khirnov 8ad3267ce3 oggdec: do not fall back on binary search in the generic code.
Binary search is already attempted in the format-specific seek function,
so the fallback is only reached if binary search failed already.
2013-07-02 10:37:22 +02:00
Anton Khirnov 720a1de52f lavc: free the padded last frame during audio encoding properly 2013-06-20 16:49:11 +02:00
Anton Khirnov eeeb5c291d vsrc_movie: do not free avoption variables in uninit()
The generic code frees them as well. Since av_free was used to free them
instead of av_freep, this would result in a double free.
2013-06-20 13:27:14 +02:00
Anton Khirnov c9c7bc4493 lavfi: switch ff_default_get_audio_buffer() to av_frame_get_buffer()
This simplifies the code and avoids using libavcodec-specific
avcodec_fill_audio_frame().
2013-06-18 11:21:16 +02:00
Anton Khirnov 84d3ff50cd lavc: add a libwavpack encoder wrapper 2013-06-10 21:33:48 +02:00
Anton Khirnov 799f57ac96 lavc: use AVFrame API properly in pad_last_frame().
This also simplifies the code.
2013-06-10 21:19:51 +02:00
Anton Khirnov e816aaacd6 apetag: use int64_t for filesize
CC: libav-stable@libav.org
2013-06-04 17:20:19 +02:00
Anton Khirnov 274e134e49 avconv: check that the output format context exists before accessing it
Fixes a segfault in exit_program() if opening an output file fails.
2013-06-04 17:20:04 +02:00
Anton Khirnov 8b7dffc2d6 lavfi doxy: improve/extend AVFilter doxy. 2013-06-04 17:18:33 +02:00
Anton Khirnov 2d2d6a4883 lavf: add a raw WavPack muxer. 2013-05-28 18:19:19 +02:00
Anton Khirnov 88de0c7901 apetag: add support for writing APE tags
This will be useful in the WavPack muxer.
2013-05-28 18:19:03 +02:00
Anton Khirnov 01656fd476 matroskaenc: support muxing WavPack 2013-05-28 18:18:57 +02:00
Anton Khirnov 794ca87d2b wvdec: split block header parsing into a separate file
It will be reused by other muxers and demuxers.
2013-05-28 17:47:59 +02:00
Anton Khirnov 0a1a94450a lavf: rename wv.c to wvdec.c
wv.c will be used for shared wavpack functions.
2013-05-28 17:47:30 +02:00
Anton Khirnov 89806691b1 wavpack: check that all the channels were coded. 2013-05-28 17:47:24 +02:00
Anton Khirnov eae1b8451a wavpack: check that there aren't too many blocks per packet 2013-05-28 17:47:17 +02:00
Anton Khirnov 7d039e70a5 wavpack: extract channel information from the bitstream
This way we don't require the caller to parse the block header. It also
allows the channel configuration to change mid-stream.
2013-05-28 17:47:04 +02:00
Anton Khirnov 78f75b6fa4 wavpack: extract sample rate from the bitstream
This way we don't require the caller to parse the block header. It also
allows the sample rate to change mid-stream.
2013-05-28 17:46:03 +02:00
Anton Khirnov 9b6f47c448 matroskadec: export full wavpack blocks.
This allows us to get rid of demuxer-specific hacks in the decoder and
will allow streamcopy from matroska once we have a wavpack muxer.
2013-05-28 08:14:35 +02:00
Anton Khirnov 5074f4545c wavpack demuxer: export full wavpack blocks.
Currently the demuxer shaves the blocks and exports only the
information that is useful to the decoder.

Exporting the blocks just as they are stored is simpler to understand
and will make remuxing wavpack easier.
2013-05-28 08:14:05 +02:00
Anton Khirnov 72dee5f40b wavpack: don't set sample format in init.
We don't know whether it will be float until we look at the data.
2013-05-28 08:04:07 +02:00
Anton Khirnov 35596bd4f4 wavpack: remove a useless parameter from wavpack_decode_block().
The decoder always returns output if an error does not occur.
2013-05-28 08:03:57 +02:00
Anton Khirnov d1bec4be22 wavpack: return an error on 0-sized blocks
Such blocks are not valid.
2013-05-28 08:03:37 +02:00
Anton Khirnov 1d177200ce wavpack: remove a useless check.
Number of samples in the first block is checked to be strictly positive
earlier in wavpack_decode_frame() and number of samples in all the other
blocks is checked to be equal to the first one.
2013-05-28 08:03:24 +02:00
Anton Khirnov 0f3a0b24dd wavpack: add an error message to a failure. 2013-05-28 08:03:13 +02:00
Anton Khirnov 474fb0c9d9 wavpack: return 0 instead of samples count from decoding functions
The caller never cares about the number of decoded samples, so this only
confuses the reader.
2013-05-28 08:03:02 +02:00
Anton Khirnov 528daa3990 wavpack: switch to planar output
This simplifies the code and makes it faster.
2013-05-28 08:01:30 +02:00
Anton Khirnov a7ec3a9a4e wavpack: drop redundant if/else blocks 2013-05-28 08:01:16 +02:00
Anton Khirnov 7b44c99180 wavpack: remove the subframes codec cap
The decoder always consumes full packets.
2013-05-28 08:01:08 +02:00
Anton Khirnov c330eba84c lavf: preserve side data when parsing packets. 2013-05-28 08:00:07 +02:00
Anton Khirnov a3fc62e89e configure: make jack depend on pthreads 2013-05-27 21:56:14 +02:00
Anton Khirnov 538bf76737 avconv: make -aspect work with streamcopy 2013-05-27 21:26:06 +02:00
Anton Khirnov 564b7e0c00 matroskadec: silently skip CodecState element.
mkvmerge apparrently uses it for mpeg1/2 video, but it contains the same
information as CodecPrivate, so it can be ignored.
2013-05-27 21:25:53 +02:00
Anton Khirnov 8a994b7406 vf_fade: support slice threading 2013-05-24 09:33:05 +02:00
Anton Khirnov cb79881b49 vf_yadif: support slice threading 2013-05-24 09:32:07 +02:00
Anton Khirnov 129bb23843 lavfi: add a slice threading infrastructure
Mostly based on libavcodec's
2013-05-24 09:28:18 +02:00
Anton Khirnov 2a6eaeaa85 Move get_logical_cpus() from lavc/pthread to lavu/cpu.
It will be useful in lavfi, and could conceivably be useful to the user
applications as well.
2013-05-24 09:28:00 +02:00
Anton Khirnov 90f9a5830b w32pthreads: move from lavc to compat/
It will be used in other places than lavc.
2013-05-24 09:26:54 +02:00
Anton Khirnov e69222c507 doxy: enable TYPEDEF_HIDES_STRUCT
This means that typedef struct SomeStruct {...} SomeStruct will only be
documented as SomeStruct in the doxy, without a pointless entry in the
typedefs list.
2013-05-24 09:12:00 +02:00
Anton Khirnov f36d7831d9 pixdesc: mark gray8 as pseudopal
Many functions treat it as such already.
Fixes Bug 499.

CC:libav-stable@libav.org
2013-05-22 21:18:08 +02:00
Anton Khirnov 7e2b15c094 avfilter: check a malloc in avfilter_link().
Additionally change sizeof(type) into sizeof(var)
2013-05-17 20:32:27 +02:00
Anton Khirnov bf5b5d2b15 avfilter.c: cosmetics, reformat 2013-05-17 20:32:18 +02:00
Anton Khirnov d79bd60405 lavfi: factorize freeing a link 2013-05-17 20:30:25 +02:00
Anton Khirnov 1dd3561143 vf_format: do not use the AVFilterFormats internals.
Use the formats.h API instead.
2013-05-17 20:30:17 +02:00
Anton Khirnov c5ab6088ad af_aformat: cosmetics, fix indentation 2013-05-17 20:30:02 +02:00
Anton Khirnov b01f6041f4 lavfi: rename AVFilterFormats.format_count to nb_formats
This is more consistent with naming in the rest of Libav.
2013-05-17 20:29:50 +02:00
Anton Khirnov e27f4b7cbf doxy: don't sort struct members alphabetically
The declaration order is more meanigful in most cases.
2013-05-17 20:27:52 +02:00
Anton Khirnov 006ec64877 lavr doxy: add version.h to the lavr group 2013-05-17 20:27:48 +02:00
Anton Khirnov f0cebf51dd lavc doxy: add avcodec.h to the libavcodec group. 2013-05-17 20:27:38 +02:00
Anton Khirnov 40020e171a doxy: add a section about versioning. 2013-05-17 20:26:18 +02:00
Anton Khirnov bc8c1cdc7b lavfi doxy: add a page for lavfi. 2013-05-17 20:26:11 +02:00
Anton Khirnov db8e336e5f pthread: reindent 2013-05-17 07:44:50 +02:00
Anton Khirnov 30e256430e lavc/pthread: remove obsolete checks
Those were useful when avcodec_thread_init() was a public functions. It
was deprecated and removed some time ago, so those checks are not needed
anymore.
2013-05-17 07:44:40 +02:00
Anton Khirnov 16a645adeb vf_pixdesctest: make config_props work properly when called multiple times. 2013-05-17 07:44:23 +02:00
Anton Khirnov 3ba35a346c vf_hqdn3d: make config_props work properly when called multiple times.
Do not leak all the temp buffers.
2013-05-17 07:44:12 +02:00
Anton Khirnov 3fb29588a2 vf_drawtext: don't leak the expressions. 2013-05-17 07:44:04 +02:00
Anton Khirnov 6592cd22a2 vf_crop: make config_props work properly when called multiple times.
Do not leak the x/y expressions.
2013-05-17 07:43:57 +02:00
Anton Khirnov d5c66d9c56 vf_setdar: make config_props work properly when called multiple times.
Do not overwrite the variable set through AVOptions.
2013-05-17 07:43:44 +02:00
Anton Khirnov 4c205f42c8 vf_drawbox: make config_props work properly when called multiple times.
Do not overwrite the variables set through AVOptions.
2013-05-17 07:43:17 +02:00
Anton Khirnov 90d9a2a04c vf_drawtext: do not reset the frame number in config_input.
Frame number should be incremented normally even if the link properties
change.
2013-05-17 07:43:07 +02:00
Anton Khirnov 7727be79d1 vf_fps: move initializing pts from config_props to init.
It should not be reinitialized if the link properties change.
2013-05-17 07:42:55 +02:00
Anton Khirnov d371c3c2e2 vf_frei0r: make config_props work properly when called multiple times.
Do not leak the initialized filter instance.
2013-05-17 07:42:46 +02:00