* commit 'b5c1c16247ab7d166c84eaf4564e49a1535fdaaf':
asfdec: do not align Data Object when Broadcast Flag is set
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
Failure should not be possible, if it does occur then the code is
buggy and should be fixed not silently clip
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* commit '9e8627a1ff9207b9e272d248da2e1bd0cc6fe2fe':
asfdec: interpret the first flag in an asf packet as length flag
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
This side data does not serve or improve decoding the data, it thus
would semantically be metadata and not side data.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
this condition breaks reading from the pipe as data_reached variable
have to be set to break while in the asf_read_header just after the Data
Object is found
Signed-off-by: Anton Khirnov <anton@khirnov.net>
* commit 'aed7715b8fa295980c221f1cd095d42cd3bd74a6':
asfdec: increment nb_streams right after the stream allocation
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
* commit 'ee80f834cbb6dbacdc1efb4c658a7d775e82ebff':
asfdec: set nb_streams to 0 in the asf_read_close
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
The stats are a superset of the quality factor, also allowing the picture type and encoder "PSNR" stats to be exported
This also replaces the native by fixed little endian order for the affected side data
AV_PKT_DATA_QUALITY_FACTOR is left as a synonym of AV_PKT_DATA_QUALITY_STATS
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* commit '2a187a074a7f5ad9f01f72ac9715ddfcb2dbb8ec':
asfdec: avoid crash in the case when chunk_len is 0 or pkt_len is 0
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
* commit '93f16f338f9e8aba0c006752eb3afc3fe6e137fd':
asfdec: close the demuxer properly when read_header is failing
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
* commit '5655236a67203d923755f285584c6e68abe7e33f':
asfdec: factor out seeking to the Data Object outside while
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
This should not change anything as the spec requires specific values
for the fields, which where handled previously.
Ask for samples when these values do not match
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* commit '5d3addb937946eca5391e40b5e6308e74ac6f77b':
Add a quality factor packet side data
Conflicts:
doc/APIchanges
ffmpeg.c
libavcodec/avcodec.h
libavcodec/mpegvideo_enc.c
libavcodec/version.h
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
This is necessary to preserve the quality information currently exported
with coded_frame. Add the new side data to every encoder that needs it,
and use it in avconv.
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* commit '2883ef34b59c9b427c4cfad4620c3235e5778406':
asfdec: read the replicated data in a separate function
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
* commit '0989d3ad1fbd7509815208b0a5792918492d2a68':
asfdec: convert condition for the replicated data reading to be safer
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
* commit '406627287e015ce381795e85e2557b12bf60ca35':
asfdec: do not read replicated data when their length is 0
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
This is needed later for outpoint support which may leave the last file in a
not-eof state.
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Marton Balint <cus@passwd.hu>
* commit '4512ee78e19fdb011bdec1b3a8dc0b315c82a81e':
mpegts: Mark the muxer as supporting variable fps
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
Possibly fixes Ticket4671
the removed check is wrong and insufficient
Based on patch by Maksym Veremeyenko <verem@m1.tv>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Fixes: 260813283176b57b3c9974fe284eebc3_signal_sigsegv_7ffff713351a_991_xtrem_e2_m64q15_a32sxx.3gp with memlimit of 262144
Found-by: Samuel Groß, Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* commit 'c571424c7f6276a6374e1784ce2a33d4b6a4292d':
asfdec: prevent memory leaks found with Coverity Scan
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
Theres no known case where its use on local files improves performance
if you know of such a case, please contact us
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* commit '796268654c7807c9a1cfb322c838383e2b900d60':
asfdec: always reset packet state after seeking
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
* commit 'c1d647b15afa69fa70f999a9ddcb98346409fb4d':
mp3: Make the seek more robust
Conflicts:
libavformat/mp3dec.c
Mostly not merged
See: b6267901c4 and various later commits
The bug is also not reproducable in FFmpeg
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
* commit '0e7c0ec344f542e68e3cc9680e8d41dffeffdb4e':
lavf/hevc: pad the RBSP buffer as required by the bistream reader
Merged-by: Michael Niedermayer <michaelni@gmx.at>
If init_get_bits fails the GetBitContext is invalid and must not be
used. Check the return value in dirac_header and propogate the error.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'f046c3b5ac36848cce824b008e0347c621523041':
lavc: Move deprecation warning disabling to files including the table
lavc: Disable deprectation warnings coming from options table
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '016cac75c6061a1c03f812ddf258b8baefe70b00':
asfdec: prevent the infinite loop in detect unknown_subobject
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '9752d2e6cc9b9e8070ec515db8ed8374683d0856':
asfdec: prevent possible memory leak in the asf_read_metadata_obj
Merged-by: Michael Niedermayer <michaelni@gmx.at>
This avoids empty streams from being selected if a equivalent non empty one is available
The new system is also clearer and more systematic
This may need finetuning, which should be easy to do ...
Fixes Ticket2687
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'a1e2caa93e4f8102666a21222f01b74838b6497f':
mov: Log format rather than fourcc in stsd in trace mode
Conflicts:
libavformat/mov.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '2eef75fd7e1ac96ab9ca63bb4523078c908bc9b1':
mov: Adjust variable types to fix format warnings
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Fix warning from clang "absolute value function 'abs' given an argument
of type 'long long' but has parameter of type 'int' which may cause
truncation of value [-Wabsolute-value]".
* commit 'e95c7a61852cc5b9ce5445ff034b87553e61958a':
mov: Preserve the metadata even when bit-exactness is requested
Conflicts:
libavformat/movenc.c
tests/ref/vsynth/vsynth1-mpeg4
tests/ref/vsynth/vsynth2-mpeg4
See: a17ee4117d
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '1b4c468477f3b8d372da8ef4e5405539ad9c1501':
riff: Validate the wav header size before trying to parse it
Conflicts:
libavformat/riffdec.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* cehoyos/master:
lavf/msnwc: Return 0 if the probe function does not detect msnwc-tcp.
lavf/mpegts: Return 0 if the probe function does not detect mpegts.
lavf/img2dec: Improve detection of valid Quickdraw images.
lavf/asfdec: Reduce minimum header size.
Changelog: Add jpeg 2000 improvements before they get forgotten.
lavf/img2dec: Autodetect dds frames.
Conflicts:
libavformat/version.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
This was suggested in the discussion about these functions
With this change the functions are available internally but are not
part of the public API
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'b08569a23948db107e5e6175cd4c695427d5339d':
lavf: Replace the ASF demuxer
Conflicts:
Changelog
libavformat/asf.h
libavformat/asfdec.c
libavformat/version.h
tests/ref/fate/wmv8-drm-nodec
tests/ref/seek/lavf-asf
The rewritten demuxer is placed in a new file, the current demuxer is
left as default. Carl has tested both and the one working better is
default.
Merged-by: Michael Niedermayer <michaelni@gmx.at>
The old one is the result of the reverse engineering and guesswork.
The new one has been written following the now-available specification.
This work is part of Outreach Program for Women Summer 2014 activities
for the Libav project.
The fate references had to be changed because the old demuxer truncates
the last frame in some cases, the new one handles it properly.
The seek-test reference is changed because seeking works differently
in the new demuxer. When seeking, the packet is not read from the stream
directly, but it is rather constructed by the demuxer. That is why
position is -1 now in the reference.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Otherwise sm_size can be larger than size, which results in a negative
packet size.
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Electronic Arts VP6 files may contain two video streams: one for the
primary video stream and another for the alpha mask. The file format
uses identical data structures for both streams.
Signed-off-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Result differs in pkt_duration and time_base.den for some reason.
Right now it tests only one example (adjusted to match the output).
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
The code is simply broken, the read packets are not aligned to
the mp3 frames, the file end or the id3 tag thus this simply
cannot reliably find the ID3v1 tag to remove it
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* commit '6ec688e1bc76dd93151cbca1c340162ae4b10d77':
mp3: enable packed main_data decoding in MP4
Conflicts:
libavcodec/mpegaudiodec_template.c
Only the parts needed to support the available sample are merged
the remaining error checks are left in place
Merged-by: Michael Niedermayer <michaelni@gmx.at>
14496-3 suggests packing main_data of MP3 that is usually scattered
into multiple frames due to bit reservoir.
However, after packing main_data into a access unit, bitrate index
in the MPEG audio frame header doesn't match with actual frame size.
In order to accept this, this patch removes unnecessary frame size
checking on mp3 decoder.
Also, mov demuxer was changed to use MP3 parser only on special cases
(QT MOV with specific sample description) to avoid re-packetizing.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
The APIC description must be unique, and some ID3v2 tag writers add
spaces to write several APIC entries with the same description. The
trailing spaces simply serve as a way to disambiguate the description.
Do this so that API users do not have to special-case mp3 to fix this
cosmetic issue.
Requested-by: wm4
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Calling ffio_ensure_seekback() if ffio_init_checksum() has been called
on the same context can lead to out of bounds memory accesses and
crashes. The reason is that ffio_ensure_seekback() does not update
checksum_ptr after reallocating the buffer, resulting in a dangling
pointer.
This effectively fixes potential crashes when opening mp3 files.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Also fix typo found by Lou Logan:
Sacrifying -> Sacrificing
Reviewed-by: Lou Logan <lou@lrcd.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
In the TTA extradata re-construction the values are written with
avio_wl16 and if they don't fit into uint16_t, this triggers an
av_assert2 in avio_w8.
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
And default to 8000 if it is invalid.
An invalid sample rate can trigger av_assert2 in av_rescale_rnd.
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
This should make no difference as the byte is ignored
Found-by: tim nicholson <nichot20@yahoo.com>
Reviewed-by: tim nicholson <nichot20@yahoo.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Added HLS encryption with -hls_key_info_file <key_info_file> option. The
first line of key_info_file specifies the key URI written to the
playlist. The key URL is used to access the encryption key during
playback. The second line specifies the path to the key file used to
obtain the key during the encryption process. The key file is read as a
single packed array of 16 octets in binary format. The optional third
line specifies the initialization vector (IV) as a hexadecimal string to
be used instead of the segment sequence number (default) for encryption.
Changes to key_info_file will result in segment encryption with the new
key/IV and an entry in the playlist for the new key URI/IV.
Key info file format:
<key URI>
<key file path>
<IV> (optional)
Example key URIs:
http://server/file.key
/path/to/file.key
file.key
Example key file paths:
file.key
/path/to/file.key
Example IV:
0123456789ABCDEF0123456789ABCDEF
Example:
ffmpeg -f lavfi -i testsrc -c:v h264 -hls_key_info_file file.keyinfo
foo.m3u8
file.keyinfo:
http://server/file.key
/path/to/file.key
0123456789ABCDEF0123456789ABCDEF
Example shell script:
BASE_URL=${1:-'.'}
openssl rand 16 > file.key
echo $BASE_URL/file.key > file.keyinfo
echo file.key >> file.keyinfo
echo $(openssl rand -hex 16) >> file.keyinfo
ffmpeg -f lavfi -re -i testsrc -c:v h264 -hls_flags delete_segments \
-hls_key_info_file file.keyinfo out.m3u8
--
Signed-off-by: Christian Suloway <csuloway@globaleagleent.com>
Signed-off-by: Dan Dennedy <dan@dennedy.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
GNUTLS_SHUT_RDWR means GnuTLS will keep waiting for the server's
termination reply. But since we don't shutdown the TCP connection at
this point yet, GnuTLS will just keep skipping actual data from the
server, which basically is perceived as hang.
Use GNUTLS_SHUT_WR instead, which doesn't have this problem.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
GNUTLS_SHUT_RDWR means GnuTLS will keep waiting for the server's
termination reply. But since we don't shutdown the TCP connection at
this point yet, GnuTLS will just keep skipping actual data from the
server, which basically is perceived as hang.
Use GNUTLS_SHUT_WR instead, which doesn't have this problem.
Signed-off-by: Martin Storsjö <martin@martin.st>
Neccessary -> Necessary
formated -> formatted
thee -> the
eventhough -> even though
seperately -> separately
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
* commit 'a7ac1a7b94447f33ae95be4d6d186e2775977f91':
flv: Name an enum and use its type
Conflicts:
libavformat/flvdec.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Some files have SeekHead elements with broken IDs. They mismatch with
the ID of the destination element. These files are written by
"IDMmkvlib0.1" (as identified by the MuxingApp and WritingApp elements),
and the SeekHead IDs are actually endian-swapped.
This confuses the SeekHead logic of the demuxer. It will read some
elements twice, because the SeekHead ID is used to identify and remember
already read elements. With the file at hand, the stream list was
duplicated by reading the Tracks element twice.
Fix this by rejecting invalid EBML IDs in SeekHead entries. (This fix is
relatively specific to the broken file at hand, and doesn't protect
against some other cases of broken SeekHead, such as valid but
mismatching target element IDs.)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
There is no support for non integer sample rates, using doubles/floats currently could
only lead to rounding differences between platforms
Previous version Reviewed-by: Mark Harris <mark.hsj@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Make the logic in libavformat/hevc.c parse_rps align with libavcodec/hevc_ps.c ff_hevc_decode_short_term_rps
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>