This ensures that theres just one AVFrame allocation function and libs dont
produce multiple AVFrame variants after a minor lib update
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Fixes use of uninitialized memory
Fixes: msan_uninit-mem_7f084c646637_9261_top_title_green_frog.gif
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Its possible to implement this with a few lines less code but it then
would flip the order of the list and require registration of external
codecs to be done first, also it could break user applications due to
this. Thus to maintain ABI this slighty more complex solution is
used.
Reviewed-by: Stefano Sabatini
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
After adding colorspace support to xine-lib, I insist in proper
settings within media files at least when they do not follow
that implicit SD/HD routine.
Fixes use of uninitialized memory
Fixes msan_uninit-mem_7f126c8ed1ac_5945_issue1731_nonpublic.mpg
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Fixes use of uninitialized memory
Fixes: msan_uninit-mem_7f60c46325d7_6415_luckynight.wma
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Fixes use of uninitialized memory
Fixes msan_uninit-mem_7fe8a5fd759d_2838_SPECTRE.BIK
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Fixes use of uinitialized memory
Fixes: msan_uninit-mem_7f01b8799186_7278_msnaudio.asf
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* cus/stable:
libzvbi-teletextdec: set bitmap teletext canvas dimensions
libzvbi-teletextdec: add chopped top row size to y offset
libzvbi-teletextdec: use defined constants for bitmap char width and height
libzvbi-teletextdec: cosmetics
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Currently only dc-only and full 16x16. Other subforms will follow in the
near future. Total decoding time of ped1080p.webm goes from 9.7 to 9.3
seconds. DC-only goes from 957 -> 131 cycles, and the full IDCT goes
from ~4050 to ~745 cycles.
Fixes ticket2531
Tables are always allocated now with sufficient space for either progressive
or interlaced content. The alternative would be to detect a change
and reallocate.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
The value of XXX_reserved_zero_44bits should be ignored, no need to
report an error when it's not zero.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Fixes use of uninitialized data, as alternative alpha could be
calculated conditionally
Fixes part of msan_uninit-mem_7f51a8b0b3b0_1009_Arlington.wmv
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Fixes use of uninitialized data
Fixes part of msan_uninit-mem_7f51a8b0b3b0_1009_Arlington.wmv
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Fixes use of uninitialized memory
Fixes: msan_uninit-mem_7f849c599487_6828_mjpeg.avi
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Given ETSI EN 300 743 V1.3.1 (2006-11), 7.2.1 Display definition segment
display window parameters are given in this order XMin, XMax, YMin, YMax
if display_window_flag is set, but here this is not the case.
As a consequence the DVB subtitles are not displayed upon some videos.
Signed-off-by: Pierre-Yves MORDRET <pierre-yves.mordret@st.com>
Reviewed-by: Kieran Kunhya <kierank@obe.tv>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This fixes decoding, broken since 7e35037.
This is similar to what was done for the normal mp3 decoder in
f4a86bc9.
Signed-off-by: Martin Storsjö <martin@martin.st>
* commit 'b06c8bce02b15115a4789252365df2dda0c4713c':
mpegvideo: remove an unneeded call to avcodec_get_frame_defaults().
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '33452aede6acab78f726cd1924824585f00765cc':
hevc: store the VPS list as an AVBufferRef, just like the others *PS
Conflicts:
libavcodec/hevc.c
libavcodec/hevc_ps.c
See: 36658c978f
Merged-by: Michael Niedermayer <michaelni@gmx.at>
This is a temporary workaround to allow deprecating
avcodec_get_frame_defaults(). The proper solution will be using a
properly allocated AVFrame in Picture.
This is a temporary workaround to allow deprecating
avcodec_get_frame_defaults(). The proper solution will be using a
properly allocated AVFrame in Picture.
This is currently redundant as the checks before it are tighter than
the checks in ff_set_dimensions() but its more robust not to depend
on that.
Fixes CID1135740
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This is currently redundant as the checks before it are tighter than
the checks in ff_set_dimensions() but its more robust not to depend
on that.
Fixes CID1135739
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
- Try reading the time_base information from the VPS too, not just the VUI
- Only set time_base when an SPS is activated, not when it's decoded.
- Reduce the fraction before setting it.
- Don't set anything if the fraction is invalid (because the VUI is not
present or because the encoded value is invalid).
Conflicts:
libavcodec/hevc_ps.c
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
significantly improves compression rate
This also bumps version to 2 and drops support for version 0/1
If someone used version 0/1 despite their experimental status then support
for these can and should be added back
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
AVFrames cannot be copied literally, their definition is in
avutil and their extended_data can point to their data[]
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* qatar/master:
hevc: parse frame packing arrangement SEI messages and save relevant stereo3d information
Conflicts:
libavcodec/hevc.h
libavcodec/hevc_sei.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '3d1d175367f1f22e0c4952299a258272e2e2acf1':
mpeg12enc: set frame packing information when relevant metadata is found
Conflicts:
libavcodec/mpeg12enc.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'bacc2869f37b17b2a89e1083289fdaf7f95f27bc':
mpeg12dec: parse frame packing arrangement user_data and save relevant stereo3d information
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '09cb75cdeba420d680bcb165a1ef668d8f381fed':
libx264: set frame packing information when relevant information is found
Conflicts:
libavcodec/libx264.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '5b10ef729f610fcbc9c485e7b643ce53268144cb':
h264: parse frame packing arrangement SEI messages and save relevant stereo3d information
Conflicts:
libavcodec/h264.c
libavcodec/h264_sei.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'd4f1188d1a662fed5347e70016da49e01563e8a8':
dv: use AVFrame API properly
Conflicts:
libavcodec/dvdec.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'a1ee1648690726b34e98eaf8db04fd7b3303cfc8':
lavc/decode_video(): always unref the frame if there is no output in decode_video
Conflicts:
libavcodec/utils.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '85f947aefb3dae81f65f518acdffa8e31c679654':
lavc: remove a pointless check in decode_audio4()
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'd4f0f2d1e80b76260eb6b9cdde472ac069dfda56':
lavc: use buf[0] instead of data[0] as the indicator of an allocated frame
Conflicts:
libavcodec/utils.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'e5419709f50593769037ab77d7102f82d9260784':
lavc: remove the extended_data workarounds.
Conflicts:
libavcodec/utils.c
One hunk is not merged as not all codecs are updated yet
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'd351ef47d0e0ccb7de96b37f137c16b2885580ac':
pthread_frame: use the AVFrame API properly.
Conflicts:
libavcodec/pthread_frame.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'afa21a12bf084f905187615706b0a8d92bc98661':
p*menc: use the AVFrame API properly.
Conflicts:
libavcodec/Makefile
libavcodec/pamenc.c
libavcodec/pnmenc.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'e2274aa555f023e4f4e4819bf29b2d7e0adec7d5':
mjpegdec: use the AVFrame API properly.
Conflicts:
libavcodec/mjpegdec.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
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().
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.
* qatar/master:
libvpx: do not mark VP9 as experimental when using libvpx >= 1.3.0
Conflicts:
libavcodec/libvpxdec.c
libavcodec/libvpxenc.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'f51e3a1971045c7ed0c3d9d29d3254a4d940198e':
webp: do not call av_frame_free() on the user-provided frame
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'b73a8922d818c7f909855557718d4c3bfacbd92d':
ljpegenc: split yuv encoding into a separate function
Conflicts:
libavcodec/ljpegenc.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'fa4476815d0d27996eb199452f2cdbfccdd244a5':
ljpegenc: split bgr encoding into a separate function
Conflicts:
libavcodec/ljpegenc.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'daffed3b173c59d64907747bf3309e98a8974f4e':
ljpegenc: accept bgr24 instead of bgra
Conflicts:
libavcodec/ljpegenc.c
libavcodec/mjpegenc.c
Only whitespace merged, we continue to support both formats
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '86eb2eaac629909d6ee4067c6f1e485a4e70473d':
mjpegenc: do not pass MpegEncContext to ff_mjpeg_encode_dc()
Conflicts:
libavcodec/mjpegenc.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '3360ad995530ea6967b1e83981b4aa8240fbb0ed':
mjpegenc: do not pass MpegEncContext to ff_mjpeg_encode_picture_trailer()
Conflicts:
libavcodec/ljpegenc.c
libavcodec/mjpegenc.c
libavcodec/mjpegenc.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '058d5f2feb730846f22c1812e433f92f670ad751':
mjpegenc: do not pass MpegEncContext to ff_mjpeg_encode_picture_header()
Conflicts:
libavcodec/mjpegenc.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '6d70639c7d5fe762c5f18de574eafa817fb53ef7':
mjpegenc: do not pass MpegEncContext to jpeg_table_header()
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'ff506c75b71d7aaa1062b49043e0b881b1e263e9':
mjpegenc: do not pass MpegEncContext to put_huffman_table()
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '0812f5a40a0a190172b6de6e91755b882472ddc5':
mjpegenc: write the JFIF header if the sample aspect ratio is set
Conflicts:
libavcodec/mjpegenc.c
See: f3ce748d34
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '66499f34b56fc6a9fdef25543bd9d576fc787895':
mpegvideo: do not set current_picture_ptr in decoders
Conflicts:
libavcodec/mss2.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'ac1fc92ea410c396594fcd79f5d4491fe6a8cc90':
vc1dec: move setting repeat_pict after frame_start() has been called.
Conflicts:
libavcodec/vc1dec.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '0b0a7a751de02464a33717e70352f696372ba1c4':
mpegvideo: move encode-only parts of common_end() to encode_end()
Conflicts:
libavcodec/mpegvideo.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '381a722562bcc0b623acf6a00a583fe989bcb72a':
mpegvideo: split the encoding-only parts of ff_MPV_frame_end() into a separate function
Conflicts:
libavcodec/mpegvideo.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
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.
* commit 'b7254288d222013e20539c530b1ec5d324ed5352':
mpegvideo: do not update last_non_b_pict_type in update_thread_context()
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'bedf952bb80ae26427854dcde56c139ecb87d4a0':
mpegvideo: move setting encoding-only vars from common_defaults() to encode_defaults()
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Originally written by James Almer <jamrial@gmail.com>
With the following contributions by Timothy Gu <timothygu99@gmail.com>
* Use descriptions of libraries from the pkg-config file generation function
* Use "FFmpeg Project" as CompanyName (suggested by Alexander Strasser)
* Use "FFmpeg" for ProductName as MSDN says "name of the product with which the
file is distributed" [1].
* Use FFmpeg's version (N-xxxxx-gxxxxxxx) for ProductVersion per MSDN [1].
* Only build the .rc files when --enable-small is not enabled.
[1] http://msdn.microsoft.com/en-us/library/windows/desktop/aa381058.aspx
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
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.
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.