bits_per_coded_sample and block_align are calculated again at end of if() block
Signed-off-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Instead of using a fixed bitrate_idx, calculate a matching bitrate for
the XING header.
Using a fixed bitrate_idx causes tools such as file(1) and mediainfo(1)
to report wrong bitrate and bitrate mode when using CBR.
Bug-Id: https://bugs.debian.org/736088
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Provides API to query device capabilities.
Each device must implement callbacks to benefit from this API.
Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
ffurl_seek() will not work even when it should be a no-op, so do not
call it on crypto protocol.
Also replace use of ffurl_size() for the same reason.
Reported-by: Michael Schenk <Michael.Schenk@albistechnologies.com>
Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
Calling avformat_free_context() right after avformat_alloc_output_context2()
leaved option's default values not freed.
Options were freed only in av_write_trailer().
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* cehoyos/master:
Fix a typo in amr.c.
Remove an unneeded include of avassert.h from amr.c.
Do not allow writing invalid wav channel layouts by default.
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Avoids a warning with gcc 4.7 and -Wtype-limits. Albeit
superfluous (At least gcc 4.8 didnt consider this been
a problem).
Signed-off-by: Reynaldo H. Verdejo Pinochet <r.verdejo@sisa.samsung.com>
Also add reason phrases from http://www.ietf.org/rfc/rfc2326.txt
and macro to translate.
Signed-off-by: Reynaldo H. Verdejo Pinochet <r.verdejo@sisa.samsung.com>
Since we are basically seeking the AVIOContext under the subdemuxer, we
need to flush the subdemuxer to avoid old packets from being read from
the packet queue after the seek.
Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
Properly take stream_index into account so that a keyframe will be
looked for in the specified stream_index only.
Similarly, only check timestamp validity against the specified
stream_index.
Also remove code for stream_index == -1 case which does not actually
happen as it is handled by generic code.
This is based on an initial patch by James Deng.
Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
Do not try to delay opening newly required playlists until a segment
switch. Applications expect that newly selected undiscarded streams are
available immediately, especially with alternative rendition streams
(selectable audio/subtitle tracks).
One might think that delaying variant stream switch until a segment
switch would allow a "seamless" switch without us having to download a
specific segment from two different variant playlists. However, that is
not the case, since the application would have to keep the previous
stream available (undiscarded) until the first packet of the newly
selected stream arrives, but by that time the demuxer would have already
downloaded the next segment of both variants.
Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
As per spec 3.4.3 ("A client MUST NOT assume that segments with the same
sequence number in different Media Playlists contain matching content.")
we cannot use sequence numbers for packet ordering.
This can be seen e.g. in the subtitle streams of
bipbop_16x9_variant.m3u8 that have considerably longer segments and
therefore different numbering.
Since the code now exclusively syncs using timestamps that may wrap, add
some additional checking for that.
According to the HLS spec all the timestamps should be in 33-bit MPEG
format and synced together.
v2: cleaner wrap detection
v3: further wrap detection improvements
Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
While selecting a packet to return to caller in read_packet(), the code
corrects the timestamps for starting timestamps.
However, this is wrong, since for live streams the initial timestamps
might differ just because of the time delay between the retrieval of the
various Media Playlists.
Fortunately, spec 6.2.4 mandates that all variant streams must have
matching timestamps, so we do not need to correct for initial
timestamps.
Drop the correction code.
Note that ID3 timestamps were previously ignored, so this code was
previously actually needed.
Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
Check if the playlist is still needed just before requesting the next
segment instead of after exhausting the previous segment.
Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
Improve selection of the segment sequence number when restarting the
reception of a playlist after it was suspended due to being unneeded
(due to discard flags).
The current code assumes that each playlist contains matching data with
the same sequence number, while spec 3.4.3 specifically says that that
is not the case. Often subtitle playlists also have longer target
durations as well, causing the selection to be completely wrong.
Instead prefer using the playlist segment duration information for
non-live playlists, and other means if that is not possible.
Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
Seeking needs to be tracked on a per-playlist basis, since the resyncing
code in hls_read_packet() has to sync each playlist to the seek
timestamp instead of stopping after the first playlist has reached it.
Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
HLS provides MPEG TS timestamps via ID3 tags in the beginning of each
segment of elementary audio streams.
v2: fix issues with streams that have multiple ID3 tags
Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
Add support for EXT-X-BYTERANGE added in HLS protocol v4.
v2: Better comment explaining ffurl_seek call and fix cur_seg_offset not
being updated.
Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
Even if we returned AVERROR_EOF previously due to playlist no longer
being needed, we may still be called again, and we do not want to
trigger a segment download in that case.
Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
HLS protocol version 4 added alternative renditions to the
specification (e.g. alternative audio tracks).
The EXT-X-MEDIA tags can also contain metadata for "renditions" (i.e.
tracks) of the main Media Playlist.
Add support for those.
Note that the same rendition (AVStream) may be associated with multiple
variants (AVPrograms).
Alternative subtitle tracks will require additional work and are
therefore not enabled yet.
Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
According to the ReplayGain spec, the peak amplitude may overflow and may result
in peak amplitude values greater than 1.0 with psychoacoustically coded audio,
such as MP3. Fully compliant decoders must allow peak overflows.
Additionally, having peak values in the 0<->UINT32_MAX scale makes it more
difficult for applications to actually use the peak values (e.g. when
implementing clipping prevention) since values have to be rescaled down.
This patch corrects the peak parsing by removing the rescaling of the decoded
values between 0 and UINT32_MAX and the 1.0 upper limit.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
The gain sign was incorrectly decoded: since the FFSIGN() macro treats 0 as
negative, gain values starting with "0." were always decoded as negative.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Further performance improvements and security fixes by
Vittorio Giovara, Luca Barbato and Diego Biurrun.
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Signed-off-by: Diego Biurrun <diego@biurrun.de>
* qatar/master: (31 commits)
riff: Add an additional AAC TwoCC
riff: support 0xa100 TwoCC for G723_1
riff: add 0x594a TwoCC for Xan DPCM
riff: add 0x64 to g726
riff: add G723_1 wav tag
riff: map 0x0038 to amrnb
riff: Support FLIC FourCC
riff: add escape130 FourCC
riff: support 'aas4' FourCC
riff: add "YUV8" FourCC
riff: Add "S263" FourCC
riff: Support XMPG as mpeg1
riff: support BW10 as mpeg1
riff: Add SLDV FourCC for dvvideo
riff: Support NTSC forward dvcpro videos
riff: add dvis/pdvc FourCCs
riff: add "GXVE" FourCC for WMV2
riff: add PLV1 fourcc to mpeg4
riff: Support decoding ASP variant from QNAP Systems
riff: add "SM4V" FourCC
...
Conflicts:
libavformat/riff.c
See: various commits, all the merged changes where in ffmpeg already
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Use const pointers to AVPacket and AVStream.
Signed-off-by: Roman Fietze <roman.fietze@telemotive.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Necessary for HLS version 3 and above. Fixes ticket #3505.
Signed-off-by: Senthilnathan M <senthil.codr@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Additional fixes by Nigel Touati-Evans <nigel.touatievans@gmail.com>.
Check the index for streams with a time drift of 2s or a buffer drift
of 64MB.
Bug-Id: 666
CC: libav-stable@libav.org
Sample-Id: yet-another-broken-interleaved-avi.avi
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Signed-off-by: Diego Biurrun <diego@biurrun.de>
* commit 'f1c4a54f6ecbf77a29aaaee09ca70c5468d0c509':
lavf: add supported extension to avi and mov demuxers
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'cba4e6062a02d5bf684e13a770be88aa1fec717e':
More correct printf format specifiers
Conflicts:
libavcodec/h264_ps.c
libavcodec/h264_refs.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Additional fixes and enhancements by Vittorio Giovara, Gonzalo Garramuno,
Nicolas George, Paul B Mahol and Michael Niedermayer.
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* commit 'fce28c3c6d603b7f42a5dbe36bf240d0470469c8':
mov: fill in subtitle dimensions after parsing tkhd
See: 8ba432bc56
Merged-by: Michael Niedermayer <michaelni@gmx.at>
This is used only for distinguishing .pix formats for now.
Which is the only case that has image2 demuxers currently
Reviewed-by: wm4 <nfxjfg@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* commit '5a7e35dd2351c30bab45177b9482cb8833a0ca78':
Add replaygain side data type and code for parsing replaygain tags.
Conflicts:
libavcodec/avcodec.h
libavcodec/version.h
libavutil/version.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '25b32586566f285d797737863c97a1c5c9c84e2b':
lavf: add an AVStream field for exporting stream-global side data
Conflicts:
libavformat/utils.c
libavformat/version.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
The authstr memory allocations make it annoying to error in the middle
of the header setup code, so apply the usual C error handling idiom to
make it easier to error at any point.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* commit '1e9db41e2a2166be5671b088ef4ad06a40af459f':
movenc: Allow override of major brand in ftyp atom
Conflicts:
libavformat/movenc.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
If a domain has some cookies set, but matching the cookie fails due to
the port being different, get_cookies() succeeds, but sets cookies to
NULL. The caller of get_cookies() didn't check for the NULL value.
This also avoids passing NULL to libc string functions, which is
undefined behavior
Fixes Ticket2180
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Some files set the PreviousPartition field to point to its own offset.
If we are parsing forward the Previous partition is immediately known
and its value could be used, otherwise we can safely point to the
header.
Reported-By: Jean Baptiste Kempf <jb@videolan.org>
* commit '0412cb67cda05b08dfca6bfc4ff664ea917fa932':
aacdec: Don't count probed ADTS frames if there are false positives
Merged-by: Michael Niedermayer <michaelni@gmx.at>
For live audio streams, requiring 500 frames for a stream to
be detected is a bit overkill.
This allows live ADTS streams that don't start nicely at
a frame boundary to start up more quickly, e.g.
http://mp3.streampower.be/radio1.aac.
Signed-off-by: Martin Storsjö <martin@martin.st>
If a portion of the probe buffer seem to resemble ADTS frames,
but some data at the end is a mismatch, disregard the whole
probing attempt. If it actually is ADTS data, there shouldn't be
any mismatches within the sequential frame data.
Signed-off-by: Martin Storsjö <martin@martin.st>
* commit '8f629a986c46f227abda1811a6ad1f449871ca35':
isom: convert mp4 dvdsub extradata to vobsub format
Merged-by: Michael Niedermayer <michaelni@gmx.at>
mp4 files embedding DVD subtitles do not use the same extradata format
as the rest of Libav expects. The subtitle decoder in libavcodec in
particular does not understand this format.
Convert the extradata to the vobsub .idx format. mp4 stores the palette
as binary 32 bit ints in YUV. The subtitle resolution is stored
separately in the track header, which we access through AVStream.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
This flag is known as 'Part of a compilation' in Apple iTunes.
Signed-off-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* qatar/master:
avconv: Match stream id
Conflicts:
cmdutils.c
doc/fftools-common-opts.texi
See: ea07063fd8
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'e77a2ea9505863e50bf013706f66bf8b7325e524':
http: Declare more parameters as const where possible
Merged-by: Michael Niedermayer <michaelni@gmx.at>
The icy_metadata_headers string never gets initialized, so,
during the first call to av_strlcatf() in parse_icy(),
strlen() will be called on a pointer to uninitialized memory.
At best this causes some garbage data to be left at the
start of the string.
By initializing icy_metadata_headers to the empty string, the
first call to strlen() will always return 0, so that data is
appended from the start of the string.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
For muxing, it accepts
both 0 and AV_NOPTS_VALUE. For demuxing, it will present
AV_NOPTS_VALUE when start_time_realtime is unknown.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* qatar/master:
http: Allow setting a Content-Type for POST requests
Conflicts:
libavformat/http.c
See: c01d1d4ddf
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '2ec33d27127251bbc45e1f88e60691ad59cf2319':
http: Add support for selecting a request range
Conflicts:
doc/protocols.texi
libavformat/http.c
See: d52882faef
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Export the metadata as a icy_metadata_packet avoption.
Based on the work of wm4 and Alessandro Ghedini.
Bug-Id: https://bugs.debian.org/739936
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
This reverts commit 691dec6201.
The commit did not fix ticket #3215, it was fixed one commit earlier.
The revert may break other use-cases but they should be fixed differently,
the offending commit introduced too many problems.
Fixes ticket #3377.
Fixes ticket #3378.
* cehoyos/master:
Define ff_log2_run[] in libavcodec/internal.h.
Replace an incorrect av_free() in movenc.c with av_freep().
Merged-by: Michael Niedermayer <michaelni@gmx.at>
The MSVCRT version of strftime calls the invalid parameter handler
if the struct values in struct tm are invalid. In case no invalid
parameter handler is set for the process, the process is aborted.
This fixes fate failures on MSVC builds since 570af382.
Based on a patch by Hendrik Leppkes.
Signed-off-by: Martin Storsjö <martin@martin.st>
* commit 'a823d0948683bd97dd58556b5740e434166209a8':
matroskaenc: write private data in hvcC format for HEVC.
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'b6c61fb83e876d404ac3b0b3657ebfcafdcd1926':
movenc: enable Annex B to MP4 conversion for HEVC tracks.
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '20b40a597cdd4969cf1147d7c7efee2b6232524b':
movenc: write hvcC tag for HEVC.
Conflicts:
libavformat/Makefile
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'eeae858596a5ce5a84797283f590a16add5704f4':
isom: Support Sony XAVC in mov
See: 5b9f39860d
See: 6e65e34837
Merged-by: Michael Niedermayer <michaelni@gmx.at>
'hvc1' requires that parameter set NAL units be
present only in the samples entry, but not in the
samples themselves, requiring that additional
parameter sets, if present, be filtered out of the
samples and placed in new, additional sample entries
if they override or otherwise conflict with the
parameter sets present in the first sample entry.
We do not have any way of doing this at present, so
the files we produce can only comply with the
restrictions set for the 'hev1' sample entry name in
ISO/IEC 14496-15.
It is my understanding that "Unless otherwise stated, all data in a
QuickTime movie is stored in big-endian byte ordering" [1] in MOV files.
I have a couple of thousand files, which technically are invalid because
their sound sample description element 4CC is 'lpcm' but its version is
0 - and "Version 0 supports only uncompressed audio in raw ('raw ') or
twos-complement ('twos') format" [2]
Because isom.c only contains a mapping for 4CC 'lpcm' to
AV_CODEC_ID_PCM_S16LE, these files have their audio decoded as LE when
it is actually BE.
This commit adds AV_CODEC_ID_PCM_S16BE as the first match for 4CC 'lpcm'.
[1]
https://developer.apple.com/library/mac/documentation/quicktime/QTFF/qtff.pdf
page 21
[2]
https://developer.apple.com/library/mac/documentation/quicktime/QTFF/qtff.pdf
page 178
Reviewed-by: Yusuke Nakamura <muken.the.vfrmaniac@gmail.com>
The correct point that seperates ISO and MAC language codes is 0x400
according to the current QT spec. Old QT specs did not list where this
seperation is but apparently only defined the meaning of the first 137.
* commit '565e0c6d866ce08d4b06427456d3d1f4fd856e9c':
movenc: allow override of "writing application" tag
Merged-by: Michael Niedermayer <michaelni@gmx.at>
ff_make_absolute_url() recognizes the "://" pattern usual
in HTTP-like protocols, but consider relative URLs starting
with just the protocol name or using the comma syntax for
options.
* commit '5b2ad78f97d43299adcb038c04346999fe9b196c':
rtmppkt: Handle extended timestamp field even for one-byte header
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Based on a suggestion by Martin Panter. This is more descriptive,
since it's the actual timestamp field from the RTMP packet,
which might or might not be a delta depending on context (in
some packets it's a delta, in some packets it's an absolute
timestamp, and in some packets it's 0xffffff to indicate that
the actual delta or absolute timestamp is transmitted separately).
Signed-off-by: Martin Storsjö <martin@martin.st>
Related fix in "rtmpdump":
https://repo.or.cz/w/rtmpdump.git/commitdiff/79459a2
Adobe's RTMP specification (21 Dec 2012), section 5.3.1.3 ("Extended
Timestamp"), says "this field is present in Type 3 chunks". Type 3 chunks are
those with the one-byte header size.
This resolves intermittent hangs and segfaults caused by the read function,
and also includes an untested fix for the write function.
The read function was tested with ABC (Australia) News 24 streams, however
they are probably restricted to only Australian internet addresses. Some of
the packets at the start of these streams seem to contain junk timestamp
fields, often requiring the extended field. Test command:
avplay rtmp://cp81899.live.edgefcs.net/live/news24-med@28772
Signed-off-by: Martin Storsjö <martin@martin.st>
Get the last partition offset and use it when footer partition
offset is missing.
Footer partition may not be present and even if present footer
partition offset may not be set in any partition except last one.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Extrapolate audio timestamps based on the number of samples demuxed.
Deal with some MXF nastiness involving fractional number of
samples per EditUnit when seeking (the specs handwave this away).
Further fixes from Tomas Härdin.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Some http servers send an ICY stream in combination with chunked
transfer encoding. This case was handled incorrectly by the ICY code:
instead of handling chunked encoding before anything ICY related, both
were mixed.
Fix this by separating the ICY code from normal http reading. Move the
normal http reading to a new function http_read_stream(), while
http_read() handles ICY on top of http_read_stream().
The server identified itself as: cloudflare-nginx
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
If set, and if TCP is available as RTSP RTP transport, then TCP will be
tried first as RTP transport.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* commit '5397386effba2e53e4ff82852a86f6be4d59e9c1':
mathops: move macro to the only place it is used
Merged-by: Michael Niedermayer <michaelni@gmx.at>
MicroDVD files are normally frame-based (i.e. there are no absolute
timestamps), but can have an optional frame rate header. If this
header is missing, the timestamps depend on the frame rate of the
video they were created for.
The demuxer will use a fallback frame rate if it's missing from the
header. Currently, applications using libavformat can't know whether
the time base is based on the fallback value, or if a frame rate
header was present.
This commit introduces a subfps AVOption for MicroDVD, and the
demuxer sets it if and only if a frame rate header was present.
Signed-off-by: Clément Bœsch <u@pkh.me>
The BOM is already skipped in the probe function, but not the header
read function. This could cause the header to be misparsed, such as
not interpreting the FPS line.
When using the wrap option the EXT-X-MEDIA-SEQUENCE header of the playlist file was reset instead of being incremented.
It is now incremented by one for every media URI removed from the playlist file as the standard states.
Signed-off-by: Willy Aubry <waubry@viotech.net>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This reverts commit f65afef1df.
If only pts is coded then dts must be equal pts
See Rec. ITU-T H.222.0 (06/2012) / ISO/IEC 13818-1:2013 (E) 2.7.5
Found-by: Baptiste Coudurier
Fixes out of array read
Fixes: 34260c7981118fb38fba61809bf4dd5a-asan_heap-oob_93b923_1508_cov_951051643_DivX640x480_oggvorbis.avi
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Fixes out of array read
Fixes: 0ff9841c2a102f06e0d582bfc3376cbd-asan_heap-oob_495589_6836_cov_1763916974_mewmew_ssa.avi
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Add parenthesis around "MD5" in the request string as required by
RFC 2069.
Fixes ticket #3417.
Reported and tested by Haarman
Analyzed-by: Eugen-Andrei Gavriloaie
We cannot easily determine if an mpeg TS's packet size is DVHS, FEC
or so on, for that we need to expose the internal raw_packet_size
field.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
* commit '1e142d5b4842dcb39fcb0e92e4aacbc9977bfa66':
movenc: Add a fallback fragmentation method for plain mp4 as well
Conflicts:
libavformat/movenc.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '4d7ab5cfebef91820af2933ef2f622ea598e6b53':
doxygen: Add a number of missing function parameter descriptions
Conflicts:
libavformat/avformat.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Copy multiple languages data from PMT to extradata. New 5 bytes
per language extradata format.
Reviewed-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* restore multiple languages data from extradata to PMT table
* setting correctly hearing empaired subtitling type
Reviewed-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* commit '0c082565965258dca143767cc6cb25e38b6e9ea3':
asfdec: short-circuit seeking to the start of stream
Conflicts:
libavformat/asfdec.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '0ebb523f072322972ea446616676fff32e9603c6':
asfdec: check ff_get_guid() return values during seeking
Conflicts:
libavformat/asfdec.c
The code that pretends that a truncated index is correct and complete is not merged
as it obviously would cause problems if a really truncated index is encountered
If someone has samples that work better with that hack, please share them / mail me
also the bug this apparently attempts to fix isnt reproducable before this in ffmpeg
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Reviewed-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Reviewed-by: Lukasz M <lukasz.m.luki@gmail.com>
See: [FFmpeg-devel] Fix libssh static linkage on Windows
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* commit '394fb56c29eee7f4f8f0334d8b5d30d3c54ac703':
lavf: always unref the packet passed to av_interleaved_write_frame() on error
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '54f7e79d4706a8343dad1d8da51b7d3d3b2cd3b2':
lavf: add some basic documentation of the muxing process
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Previously these type of streams were not returned even if wanted stream was
set to a stream of such. Now they are only skipped if they are not wanted
streams.
Fixes ffplay -sst <stream number> out.ts where stream number is a *_IMPAIRED stream.
Signed-off-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Since 2007, the Xiph.org Foundation recommends that .ogg only be used
for Ogg Vorbis audio files.
Source: http://wiki.xiph.org/index.php/MIME_Types_and_File_Extensions
However we only do it if we have libvorbis available because the
built in vorbis encoder is not as good.
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
If a special comment packet shows up in the middle of the stream, we
should extract it out into the vorbis stream metadata dictionary.
Also, if there is metadata in the packet on the way in, it might linger
since we only add data to the dictionary causing stale metadata to be
inserted into the stream. Instead, clear it to remove any doubt about
what is new and old.
Signed-off-by: Ben Boeckel <mathstuf@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Currently, if there are multiple 'performer' tags, the last one is the
only one which appears. Instead, join them with a semicolon.
Signed-off-by: Ben Boeckel <mathstuf@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Setting seek_preroll value in AVCodecContext for Opus streams
embedded in ogg container.
Signed-off-by: Vignesh Venkatasubramanian <vigneshv@google.com>
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Currently ff_interleave_packet_per_dts() waits until it gets a frame for
each stream before outputting packets in interleaved order.
Sparse streams (i.e. streams with much fewer packets than the other
streams, like subtitles or audio with DTX) tend to add up latency and in
specific cases end up allocating a large amount of memory.
Emit the top packet from the packet_buffer if it has a time delta
larger than a specified threshold.
Original report of the issue and initial proposed solution by
mus.svz@gmail.com.
Bug-id: 31
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Even though the most common framerate for RoQ is 30fps,
the format supports other framerates too.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This is the solution we've been using in XBMC for over 2 years for dvd still frames.
The problem is that the demuxer asks for probing of the codec in the mpeg stream.
This causes lavf to read the whole menu structure into internal buffers.
After which, it won't read from input stream anymore and no events triggers.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'c716624853339ea4b1086a3957b334829370204c':
mxf: Read field dominance flag
Conflicts:
libavformat/mxfdec.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
aviod use of uninitialized memory
Fixes: asan_heap-oob_1487fa4_4706_cov_364534849_cover_art.flac
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* commit '78987a88a88b28d93d03ed6c228bcb33f178444f':
lavf: include 60 fps in guessed standard frame rates
Merged-by: Michael Niedermayer <michaelni@gmx.at>
This also returns failure if the mkdir failure is not due to an already existing
path.
Fixed CID1135749
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This (ugly) hack fixes Ticket3348
If someone has an idea on how to fix this nicer, that would be very welcome
but the stream contains several PMTs with just one of the 2 streams at the start
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Session data (cookies, user-agent) is not being sent on payload requests with
encrypted HLS streams This causes services like Akamai to give a 403 forbidden
when requesting the TS files, because they expect the same cookies
and user-agent on all requests
The muxer will write at least the number of bytes requested and possibly
up to 3 bytes more. This is because the muxer writes 32-bit integers
and the format requires 4-byte alignment anyway.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
As with the change to flacenc this allows the user to control the amount
of padding they want added to the file.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Allows a user to control the amount, if any, of padding they want added
to the file. If set to zero the block will not be written at all. If
set to some positive number four more bytes will be added to the file
due to the small header required for the block.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* Using extradata by TS demuxer to store values from PMT
* Support of multiple languages in one DVB teletext stream:
comma separated language codes in metadata "language" field
Reviewed-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* Using extradata by TS muxer to correctly restore PMT table
* PES_header_data_length should be always 0x24 for DVB teletext,
according to DVB standard
Reviewed-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
All samples in the wild are RGB565/555 and we are already
acting on this assumption when pushing out the video frames,
so if we get anything != than 16 for bpp we just override
this value for doing any calculations making our approach
consistent.
Also avoid repeatedly shifting bpp.
Signed-off-by: Reynaldo H. Verdejo Pinochet <r.verdejo@sisa.samsung.com>
MTV has a 512 bytes header. We should be able to
parse required fiels from the first 57 (rest is
padding) but if we haven't seen enough data then
go with SCORE_EXTENSION.
Signed-off-by: Reynaldo H. Verdejo Pinochet <r.verdejo@sisa.samsung.com>
Abort immediately if we are not getting enough
data to extract the required fields.
Signed-off-by: Reynaldo H. Verdejo Pinochet <r.verdejo@sisa.samsung.com>
This fixes playback of mp3 streams in rtp/asf. This used to work
until c6f1dc8, but mostly by coincidence.
Signed-off-by: Martin Storsjö <martin@martin.st>
This is needed for matroska spec compliance
Fixes playback of SVQ3 in matroska with vlc
Fixes Ticket 3256
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* lukaszmluki/master:
lavf/ftp: remove double space
lavf/libssh: fix seek with whence==SEEK_CUR
lavf/libssh: rename context variable from s into libssh
lavf/libssh: add av_cold attributes
lavf/libssh: factorize create_sftp_session function
lavf/libssh: factorize create_ssh_session function
lavf/libssh: factorize file_stat function
lavf/libssh: factorize open_file function
lavf/libssh: add private_key option
Merged-by: Michael Niedermayer <michaelni@gmx.at>