Commit Graph
100 Commits
Author SHA1 Message Date
Vittorio Giovara 419e3404d0 mpegvideo: Drop exchange_uv() function and use its code directly
Code is small enough that there is no advantage in a separate function.
2015-05-28 15:38:43 +01:00
Vittorio Giovara 4e17946f10 mpegvideo: Rework various functions not to use MpegEncContext directly 2015-05-22 15:34:39 +01:00
Vittorio Giovara a3f4c930ac mpegvideo: Have ff_mpeg_ref_picture use AVCodecContext directly 2015-05-22 15:34:39 +01:00
Vittorio Giovara d528045558 mpegvideo: Have ff_mpeg_unref_picture use AVCodecContext directly
This skips setting the memory to 0 but allows for reuse on different
contextes. Oracle did not report any unsual activity because of it.
2015-05-22 15:34:39 +01:00
Vittorio Giovara 6f54dc43ce mpegvideo: Drop stream_codec_tag
The field is unused.
2015-05-22 15:34:39 +01:00
Vittorio Giovara 9c1db92ad3 mpegvideo: Drop err_recognition
It is just a duplicate of an AVCodecContext member so use it instead.
2015-05-22 15:34:39 +01:00
Vittorio Giovara 848e86f74d mpegvideo: Drop flags and flags2
They are just duplicates of AVCodecContext members so use those instead.
2015-05-22 15:34:39 +01:00
Vittorio GiovaraandMichael Niedermayer 265d884eb0 avcodec/vmnc: Add back adapted comment about 24bit
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-20 19:24:54 +02:00
Vittorio Giovara 7046bd9bc9 lavfi: Move avcodec header to the only filter needing it
af_ashowinfo, due to the enum AVAudioServiceType use.
2015-05-19 18:56:40 +01:00
Vittorio Giovara eafbc6716c vmnc: Delay pixel size check
Some clients incorrectly set 24 as bits_per_coded_sample, while
the actual value is preserved in one of the codec headers.
In order to work around this, delay the check until decode_frame().

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-05-19 18:55:30 +01:00
Vittorio Giovara d84429d41e dnxhd: Print unknown header when found 2015-05-12 16:30:48 +01:00
Vittorio Giovara 8fc11abe1f mkv: Print unsupported mov tags when found 2015-05-12 15:28:31 +01:00
Vittorio Giovara 0348e74c01 quickdraw: Skip the empty 512 byte header for images
Found-by: Carl Eugen Hoyos <cehoyos@ag.or.at>
2015-05-12 15:28:31 +01:00
Vittorio Giovara 6c8c7c2462 dump: Print AVAudioServiceType side data 2015-05-06 14:57:46 +01:00
Vittorio Giovara 04070dbca0 libx265: Fix 'braces around scalar initializer' warning
x265 Reordered the x265_picture fields in the commit

https://github.com/videolan/x265/commit/51b1518de2414431f36eac592db15b667c25a7b9#diff-945b5354d8767dfac13334f2d22cf58fR107

Now the first field is an integer and not an array.
2015-05-06 14:53:29 +01:00
Vittorio Giovara d81fb63d87 fate: Add a PICT test
This stimulates the direct pixel mode in Quickdraw decoder.
2015-05-06 14:36:01 +01:00
Vittorio Giovara 7b734ee55d lavf: Open PICT images with Quickdraw
Update the pictor test to use the pictor codec, as both formats share
the .pic file extension.
2015-05-06 14:27:34 +01:00
Vittorio Giovara 34efb8a169 quickdraw: Support direct pixel blocks
Data is stored in separated components so rework decode_rle() to support
stepping and offsets.
2015-05-06 14:27:34 +01:00
Vittorio Giovara bb2cb0a66d quickdraw: Switch to greedy parsing
Quickdraw packs data as a series of codes that the application is supposed
to handle, but it does not define any order in which they might appear.
Since it's unfeasible to support *all* opcodes defined by the spec,
only handle well-known blocks containing video data and ignore any unknown
or unsupported ones.

Move palette loading and rle decoding to separate functions to resue them
in other blocks and drop format initialization in init since it can
support more formats than pal8.

Validate width and height.
2015-05-06 14:26:30 +01:00
Vittorio Giovara d00f1e0fc1 quickdraw: Convert to bytestream2
Add appropriate error messages and reduce r, g, b variables scope.
Drop the now redundant line checks in RLE decoding.
2015-05-06 14:26:30 +01:00
Vittorio Giovara 6503cbf842 ffv1enc: Add const attribute to input frame
warning: assigning to 'AVFrame *' (aka 'struct AVFrame *') from
         'const AVFrame *' (aka 'const struct AVFrame *') discards
         qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
2015-05-01 14:52:24 +01:00
Vittorio Giovara 0c69164f45 h263: Convert function to macro 2015-04-28 16:33:09 +01:00
Vittorio Giovara 59dfc2b0c8 h263: Drop commented-out code and a related otherwise unused function 2015-04-28 16:31:05 +01:00
Vittorio Giovara c341820130 jpeglsenc: Mark codec as init-thread-safe and init-cleanup
Fixes a memory leak on init failure.
2015-04-28 16:29:29 +01:00
Vittorio Giovara 3919a45726 jpeglsenc: Check memory allocations
Convert exisiting free functions to av_freep() to avoid accidental
double frees, and always intialize all buffers to NULL.
2015-04-28 16:27:16 +01:00
Vittorio Giovara f5ba67ee13 flacenc: Move a scratch buffer to struct used by the function
This avoids allocating/freeing memory at every function call,
checking its return value, and carrying the error around.
2015-04-28 16:25:09 +01:00
Vittorio Giovara 18db1286b0 libxvid: Make codec use the init-cleanup flag and mark it as init-thread-safe
This takes care of memory leaks on init error.
2015-04-24 14:55:11 +01:00
Vittorio Giovara eae7338e15 libx264: Make codec use the init-cleanup flag and mark it as init-thread-safe
This takes care of memory leaks on init error.
2015-04-24 14:55:11 +01:00
Vittorio Giovara 74a1cad7e3 lclenc: Mark codec as init-thread-safe and init-cleanup 2015-04-24 14:55:11 +01:00
Vittorio Giovara bb428e00ac hqx: Mark codec as init-thread-safe and init-cleanup 2015-04-24 14:55:11 +01:00
Vittorio Giovara 43171886e0 huffyuvenc: Mark codec as init-thread-safe and init-cleanup 2015-04-24 14:55:11 +01:00
Vittorio Giovara d90133b77b asvenc: Mark codec as init-thread-safe and init-cleanup 2015-04-24 14:55:10 +01:00
Vittorio Giovara a4edaeb50f hq_hqa: Fix table data for profile 17
The table had a wrong table height and was missing the first line of bytes.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-04-24 14:55:10 +01:00
Vittorio Giovara b17cbb0b1c riff: Add GMP4 fourcc for mpeg4 2015-04-24 14:55:10 +01:00
Vittorio Giovara 3c04ec04df riff: Add GLV4 fourcc for mpeg4 2015-04-24 14:55:10 +01:00
Vittorio Giovara 5bba3ab0cf internal: Make dlog/tlog a no-op when disabled
Improves Coverity analysis, avoiding "double semicolon" CIDs.
2015-04-24 14:55:10 +01:00
Vittorio GiovaraandMichael Niedermayer 32da94fa7f lavf: Reset global flag on deinit
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-23 13:55:55 +02:00
Vittorio GiovaraandMichael Niedermayer 45340f9fc7 network: Do not leave context locked on error
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-23 13:42:33 +02:00
Vittorio Giovara eaa2d123f0 log: Print a full backtrace along with error messages under Valgrind
Useful to understand where and in what execution state a certain message
is generated. It is enabled only when optimizations are disabled, since
function names are not printed otherwise.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-04-20 19:20:57 +01:00
Vittorio Giovara bd5ad8b23d hq_hqa: Fix reading hqa quantization matrix index
Value is stored as a byte.
2015-04-20 19:20:22 +01:00
Vittorio Giovara 1746dc382d hqxdsp.h: #include "stddef.h"
It is required by ptrdiff_t, fixes make checkheaders.
2015-04-20 19:19:23 +01:00
Vittorio Giovara 98cab39798 lavf: Fix variables constness in ff_iso8601_to_unix_time()
warning: assigning to
      'char *' from 'const char *' discards qualifiers
      [-Wincompatible-pointer-types-discards-qualifiers]
2015-04-20 18:43:33 +01:00
Vittorio Giovara 86e1a35802 h264_ps: Return meaningful error codes and address a memory leak
Bug-Id: CID 1026763
2015-04-20 14:59:40 +01:00
Vittorio Giovara 3d71b1f8f0 mpegvideo_enc: Simplify picture allocation 2015-04-19 23:17:56 +01:00
Vittorio Giovara 0251c9be5a motion_est: Fix warning from zero_cmp() assignment
warning: incompatible
      pointer types assigning to 'me_cmp_func' (aka 'int (*)(struct
      MpegEncContext *, uint8_t *, uint8_t *, ptrdiff_t, int)') from 'int
      (MpegEncContext *, uint8_t *, uint8_t *, int, int)'
      [-Wincompatible-pointer-types]
2015-04-19 23:17:56 +01:00
Vittorio Giovara 4d593896aa vc1_pred: Always initialize px and py in ff_vc1_pred_mv_intfr()
Fix a rather lengthy initialization warning from clang.
2015-04-19 23:17:56 +01:00
Vittorio Giovara 9286de0459 mov: Double-check that alias path is not an absolute path
nlvl_to and nlvl_from can be set to 1 if both alias and target files
are in the same directory, so actually check the first character of the
string. We can do this because MacOS filepaths (alis type 2) are always
converted to UNIX filepaths (alis type 18).
2015-04-19 22:50:24 +01:00
Vittorio Giovara 376589e5dd mov: Read alternate absolute path in dref alis
Absolute paths can be stored in alis type 2 and 18 according to my research:
the first is the canonical MacOS filepath, with path level separated by
colons, and the volume name within the filepath, while the second should be the
absolute filesystem path from the mount point.
2015-04-19 22:48:14 +01:00
Vittorio Giovara 22526c1f55 Canopus HQ/HQA decoder
Based on work by Kostya Shishkov <kostya.shishkov@gmail.com>.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-04-19 22:37:23 +01:00
Vittorio Giovara e6fb844f7b Implement shared parsing of INFO tag in Canopus family
Add some bounds checking to CLLC; reduce HQX variable scoping,
add an error message.
2015-04-19 22:37:02 +01:00
Vittorio Giovara fcda30f2dc fate: Prefix cllc tests with canopus
They belong to the same family of codecs.
2015-04-19 22:36:50 +01:00
Vittorio Giovara 5b5338f6d1 hqx: Implement slice-threaded decoding
Inspired by a patch from Ferdinand Oeinck <ferdo@demon.nl>.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-04-19 22:36:48 +01:00
Vittorio Giovara 453642f8af hqx: Store shareable data in main decoder context
In preparation for multithreaded decoding.
2015-04-19 22:36:41 +01:00
Vittorio Giovara ea031b75fb hqx: Move DSP related code to a separate file 2015-04-19 12:41:59 +01:00
Vittorio Giovara 17aa81d947 hqx: Merge invalid format check within switch block 2015-04-19 12:41:59 +01:00
Vittorio Giovara 6a85dfc830 lavc: Replace av_dlog and tprintf with internal macros 2015-04-19 12:41:59 +01:00
Vittorio Giovara 1a3eb042c7 Replace av_dlog with normal av_log at trace level
This applies to every library where performance is not critical.
2015-04-19 12:41:59 +01:00
Vittorio Giovara c253340ae6 log: Introduce a more verbose debug level
And deprecate av_dlog macro.
2015-04-19 12:41:59 +01:00
Vittorio GiovaraandMichael Niedermayer 7498f2221e h264: Do not fail on unsupported timing info
The spec madandate both time_scale and num_units_in_tick greater than 0,
however since they are not essential for decoding, just ignore the whole
block and try to finish parsing the VUI.

Related to Ticket4445.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-04-16 03:41:41 +02:00
Vittorio GiovaraandDiego Biurrun 73dacabfc9 ffv1: Check memory allocations
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2015-04-13 17:51:31 +02:00
Vittorio Giovara 783df7d5c5 riff: Add 'M705' FourCC for mpeg2video 2015-04-09 13:52:04 +02:00
Vittorio Giovara 5980c924e3 dnxhd: Log the selected profile id 2015-04-09 13:51:58 +02:00
Vittorio Giovara be089af38f mov: Rely on box type rather than file type for colr atom
Although it's not allowed to use only allows 'nclc' in ISOM files, there
are samples that do not always respect this rule. This change prevents
atom overread and a spurious color range initialization.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-04-09 13:46:54 +02:00
Vittorio Giovara f8fd0c29ce v210: Fix typo in header guards 2015-04-09 13:40:44 +02:00
Vittorio Giovara 312a9ef04b pixfmt: Update documentation with prefixed pixel formats 2015-03-23 20:53:28 +00:00
Vittorio Giovara 592a04054e pixdesc: Replace a few leftover instances of non AV-prefixed flags 2015-03-23 20:53:28 +00:00
Vittorio Giovara 7419b34825 fate: Add test for tscc2 in mov
Rename the existing tscc2 test.
2015-03-23 20:53:28 +00:00
Vittorio Giovara e4fe535d12 mov: Write the display matrix in order
This will allow to copy the matrix as is and it is just cleaner to keep
the matrix in the same order specified by the mov standard (which is
also explicitly described in the documentation).

In order to preserve compatibility, flip the angle sign in the display API
av_display_rotation_set() and av_display_rotation_get(), and improve the
documentation mentioning the rotation direction.
2015-03-23 20:53:28 +00:00
Vittorio Giovara 6289706b35 fate: Move tdsc to the appropriate screen capture file 2015-03-17 13:36:10 +00:00
Vittorio Giovara 423f5d50e4 mov: Fix little endian audio detection
Set this field to TRUE if the audio component is to operate on
little-endian data, and FALSE otherwise.

However TRUE and FALSE are not defined. Since this flag is just a boolean,
interpret all values except for 0 as little endian.

Sample-Id: 64bit_FLOAT_Little_Endian.mov
2015-03-17 13:34:23 +00:00
Vittorio Giovara cdce9e8025 aacsbr: Fix type for index variable
Prevents unsigned overflow and variable truncation.

Bug-Id: CID 603186
2015-03-17 13:34:23 +00:00
Vittorio Giovara 7c60c124c8 hqx: Drop unused offsets table
This is a leftover from the static to dynamic vlc table conversion.
2015-03-17 13:34:23 +00:00
Vittorio Giovara 02d76141d6 riff: Add 'tshd' FourCC for H.264 2015-03-17 13:34:22 +00:00
Vittorio Giovara 247e370e2a TDSC decoder
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-03-13 19:48:14 +00:00
Vittorio Giovara 5a0e953c24 mjpeg: Mark decoder family as thread safe
No global variables are used and the VLC tables are allocated without
static elements. This will allow using a JPEG decoding context within
other decoders.
2015-03-13 19:48:07 +00:00
Vittorio Giovara 117b432748 lavc: Introduce AVCodec internal capabilities
This field is designed for marking codec properties useful to lavc internals.
Two internal capabilities are added:
 - FF_CODEC_CAP_INIT_THREADSAFE: codec can be opened without locks;
 - FF_CODEC_CAP_INIT_CLEANUP: codec frees memory if initialization fails.
2015-03-13 19:47:47 +00:00
Vittorio Giovara 9993a067f6 lavc: Improve thread locking error message 2015-03-13 19:47:34 +00:00
Vittorio Giovara 6bdae41d3e matroskadec: Check memory allocations
CC: libav-stable@libav.org
2015-03-12 17:48:14 +00:00
Vittorio Giovara c3bd1d60af formats: Check memory allocations 2015-03-12 17:46:47 +00:00
Vittorio Giovara 5a2645cafe nutdec: Prevent leaks on memory error
Bug-Id: CID 205122 / CID 205123
2015-03-12 15:29:59 +00:00
Vittorio Giovara edca1dd552 xcbgrab: Check av_strdup() allocation
Bug-Id: CID 1274038
2015-03-12 15:29:59 +00:00
Vittorio Giovara 17c45d4d05 libtheora: Check frame allocation 2015-03-12 15:29:59 +00:00
Vittorio Giovara a72d93daa0 mpegvideo_enc: Check AVCodecContext allocation 2015-03-12 15:29:59 +00:00
Vittorio Giovara 7a76c6c4df configure: Enable colored output for gcc 4.9+ 2015-03-11 18:01:36 +00:00
Vittorio Giovara bacc92b59b rtpdec_vp9: Drop extra sanity check for size of input packet
In this case len is always at least 1, since it is checked against
RTP_VP9_DESC_REQUIRED_SIZE + 1 and then it is reduced by
RTP_VP9_DESC_REQUIRED_SIZE before entering the has_pic_id check.

Bug-Id: CID 1270811
2015-03-11 18:01:25 +00:00
Vittorio Giovara fe99c52fa9 mp3: Properly use AVCodecContext API
Rather than having an unitialized context on the stack, allocate it with
defaults and free it when unneeded.

CC: libav-stable@libav.org
2015-03-11 17:57:56 +00:00
Vittorio Giovara 9272c965d9 matroskaenc: Fix type used for chapter timestamps 2015-03-11 17:56:51 +00:00
Vittorio Giovara 93f7948136 libvpx: Fix mixed use of av_malloc() and av_reallocp()
This buffer is resized when vpx_codec_get_cx_data() returns a
VPX_CODEC_STATS_PKT packet.

CC: libav-stable@libav.org
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-03-09 12:58:18 +00:00
Vittorio Giovara ad94c6ca0b siff: Use the correct type for packet size variables
The avio functions used here return an unsigned value.
Also reduce a variable scope.

CC: libav-stable@libav.org
Bug-Id: CID 1258461
2015-03-09 12:58:17 +00:00
Vittorio Giovara 9f25a10992 matroskaenc: Also validate chapter end time
This prevents it to be written as unsigned. Also add an error message.

CC: libav-stable@libav.org
Bug-Id: CID 1265717
2015-03-09 12:57:19 +00:00
Vittorio Giovara bfeb83a8b7 rtpdec_hevc: Drop extra sanity check for size of input packet
In this case len is always at least 3, since it is checked against
RTP_HEVC_PAYLOAD_HEADER_SIZE + 1 before entering the switch block.

Bug-Id: CID 1238784
2015-03-09 12:57:01 +00:00
Vittorio Giovara 7b9cb7b365 avprobe: Export coded_{width,height} in -show_streams 2015-03-08 20:41:50 +00:00
Vittorio Giovara 87e85a133f aac: Relax reserved_bit validation
Although the specification mandates this bit to zero, it may happen
that software tools incorrectly flip it to one, invalidating a possibly
valid stream.

Relax this restriction, by failing only when AV_EF_BITSTREAM is set.
This behaviour is similar to aac decoders in Firefox and Quicktime.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-03-04 16:36:16 +00:00
Vittorio Giovara 0af3b65880 asf: do not export XMP metadata by default
Similarly to what has been done for MOV, display XMP metadata only when
users explicitly require it.

The Extensible Metadata Platform tag can contain various kind of data
which are not strictly related to the video file, such as history of
edits and saves from the project file.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-03-03 15:30:52 +00:00
Vittorio Giovara 994d8f3095 fate: Add AIC test with odd sizes 2015-03-03 15:08:45 +00:00
Vittorio Giovara e878ec0d47 aic: Fix decoding files with odd dimensions
Normally the aic decoder finds the proper slice combination (multiple of
some number less than 32) but in case of odd width, it resorts to the
default values, which were actually swapped.
The number of slices is modified to account for such odd width cases.

CC: libav-stable@libav.org
2015-03-03 15:08:15 +00:00
Vittorio GiovaraandMichael Niedermayer 43e5e3c077 colormatrix: Accept bt601 aliases as input
As far as matrix coefficients are concerned, BT470BG and SMPTE170M
match BT601. This is similar to the check performed in vf_scale.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-02-26 19:26:05 +01:00
Vittorio Giovara 35c6ce76b1 Canopus HQX decoder
Based on work by Kostya Shishkov <kostya.shishkov@gmail.com>.
2015-02-22 22:42:27 +00:00
Vittorio Giovara e570f895cd libschroedinger: Check memory allocations 2015-02-22 22:32:18 +00:00
Vittorio Giovara 521979e6b1 configure: Properly fail when libcdio/cdparanoia is not found 2015-02-22 22:31:54 +00:00