Commit Graph
100 Commits
Author SHA1 Message Date
Marton Balint 5974463767 avformat/mpegtsenc: remove deprecated resend_headers option
Deprecated since 2014.

Signed-off-by: Marton Balint <cus@passwd.hu>
2019-08-14 23:25:28 +02:00
Marton Balint 88ac76be79 avformat/mpegtsenc: fix PCR generation intervals
PCR generation was based on counting packets for both CBR and VBR streams.
Couting packets might have worked for CBR streams (when muxrate was specified)
but it only took into account the packets of a service (or the packets of the
PCR stream lately), so even that was problematic for multi program streams.

The new code works on actual timestamps for both CBR and VBR streams. For VBR
streams the behaviour of the old code is simulated by selecting a PCR interval
which is the highest multiple of the frame duration but still less than 100 ms.

It should be trivial to add support for setting the PCR interval for VBR
streams as well in a later patch.

The accuracy of PCR packets for CBR streams was greatly improved by preemtively
sending them at PCR intervals even if sending the payload of another stream
is in progress.

This may fix these tickets:
- #5750
- #7524

Signed-off-by: Marton Balint <cus@passwd.hu>
2019-08-14 23:24:11 +02:00
Marton Balint a4d984ad33 avformat/mpegtsenc: use increasing numbers in default service names
Maybe we should use service ID instead of increasing numbers?

Signed-off-by: Marton Balint <cus@passwd.hu>
2019-08-14 22:50:11 +02:00
Marton Balint 9de40bf624 avformat/mpegtsenc: remove section_write_packet forward declaration
Signed-off-by: Marton Balint <cus@passwd.hu>
2019-08-14 22:50:11 +02:00
Marton Balint 47ea654bd8 avformat/mpegtsenc: factorize setting up services
Signed-off-by: Marton Balint <cus@passwd.hu>
2019-08-14 22:50:11 +02:00
Marton Balint d770e0f401 avformat/mpegtsenc: fix incorrect PCR selection with multiple programs
The MPEG-TS muxer had a serious bug related to the use of multiple programs:
in that case, the PCR pid selection was incomplete for all services except one.
This patch solves this problem and selects a stream to become PCR for each
service, preferably the video stream.

This patch also moves pcr calculation attributes to MpegTSWriteStream from
MpegTSService. PCR is a per-stream and not per-service thing, so it was
misleading to refer to it as something that is per-service.

Also remove *service from MpegTSWriteStream because a stream can belong to
multiple services so it was misleading to select one for each stream.

You can check the result with this example command:

./ffmpeg -loglevel verbose -y -f lavfi -i \
  "testsrc=s=64x64:d=10,split=2[out0][tmp1];[tmp1]vflip[out1];sine=d=10,asetnsamples=1152[out2]" \
  -flags +bitexact -fflags +bitexact -sws_flags +accurate_rnd+bitexact  \
  -codec:v libx264 -codec:a mp2 -pix_fmt yuv420p \
  -map '0:v:0' \
  -map '0:v:1' \
  -map '0:a:0'  \
  -program st=0:st=2 -program st=1:st=2 -program st=2 -program st=0 -f mpegts out.ts

You should now see this:

[mpegts @ 0x37505c0] service 1 using PCR in pid=256
[mpegts @ 0x37505c0] service 2 using PCR in pid=257
[mpegts @ 0x37505c0] service 3 using PCR in pid=258
[mpegts @ 0x37505c0] service 4 using PCR in pid=256

Fixes ticket #8039.

v2: a video is stream is preferred if there are no programs, just like before
the patch.

Signed-off-by: Marton Balint <cus@passwd.hu>
2019-08-14 22:50:11 +02:00
Marton Balint a1c7014847 ffplay: properly detect all window size changes
SDL_WINDOWEVENT_SIZE_CHANGED should be used instead of SDL_WINDOWEVENT_RESIZED
because SDL_WINDOWEVENT_RESIZED is only emitted if the resize happened due to
an external event.

Fixes ticket #8072.

Additional references:
https://bugzilla.libsdl.org/show_bug.cgi?id=4760
https://wiki.libsdl.org/SDL_WindowEventID

Signed-off-by: Marton Balint <cus@passwd.hu>
2019-08-14 21:57:46 +02:00
Marton Balint 686755f02b avcodec/encode: only allow undersized audio frames if they are the last
Otherwise the user might get a silence padded frame in the beginning or in the
middle of the encoding.

Some other bug uncovered this:

./ffmpeg -loglevel verbose -y -f data -i /dev/zero \
-filter_complex "nullsrc=s=60x60:d=10[v0];sine=d=10[a]" \
-map '[v0]' -c:v:0 rawvideo \
-map '[a]'  -c:a:0 mp2 \
-f mpegts out.ts

Signed-off-by: Marton Balint <cus@passwd.hu>
2019-08-11 22:32:42 +02:00
Marton Balint 81d3d7dd44 avformat/mpegts: respect program number when merging streams
merge_pmt_versions was not usable if multiple programs were present because
when it was searching for candidate streams it did not make sure that the PMT was
of the same program. This caused the streams of all programs to get merged into
a single (garbled) program.

This patch makes sure that the program number (service ID) is also matching
with the old streams when parsing the PMT making the feature useful for multi
program streams.

This change might cause issues for single program streams if the program number
changes, but I think it is acceptable because the goal of the option is to make
the parsing resilient to PID changes, and that is still working as expected.

Signed-off-by: Marton Balint <cus@passwd.hu>
2019-07-12 20:32:22 +02:00
Marton Balint 397abca001 avformat/movenc: use unspecified language by default
English was used before.

Signed-off-by: Marton Balint <cus@passwd.hu>
2019-07-12 20:26:38 +02:00
Marton Balint 415886588f doc/filters: move reference to framesync options from lut3d to haldclut
Signed-off-by: Marton Balint <cus@passwd.hu>
2019-06-01 19:06:05 +02:00
Marton Balint 1eb54323c8 avfilter/f_loop: warn about unset loop sizes
Signed-off-by: Marton Balint <cus@passwd.hu>
2019-05-24 21:39:07 +02:00
Marton Balint 87e0247a6c avfilter/f_loop: fix video loop issues with 0 size or when size is bigger than input
Fixes infinte loop with -vf loop=loop=1 and also fixes looping when the input
is less frames than the specified loop size.

Possible regressions since ef1aadffc7.

Signed-off-by: Marton Balint <cus@passwd.hu>
2019-05-24 21:39:07 +02:00
Marton Balint f811ac5228 avcodec/scpr3: fix checking ret value of decode_run_i
Fixes Coverity CID 1441461.

Signed-off-by: Marton Balint <cus@passwd.hu>
2019-05-24 21:39:07 +02:00
Marton Balint 1b4f74ffe2 avcodec/scpr: fix checking ret value of decode_run_i
Fixes Coverity CID 1441460.

Signed-off-by: Marton Balint <cus@passwd.hu>
2019-05-24 21:39:07 +02:00
Marton Balint f9271d0158 avformat/utils: fix stream ordering for program ID stream specifiers
Fixes a regression introduced in dbfd042983.

Signed-off-by: Marton Balint <cus@passwd.hu>
2019-05-24 21:39:07 +02:00
Marton Balint c61d16cf3b Revert "lavf/utils: Allow url credentials to contain a slash."
This reverts commit dd06f022b0.

Fixes ticket #7871 and reopens ticket #7816.

The introduced regression caused URL's with @ in them to be parsed incorrectly
which is a bigger issue then not being able to specify the slash character as a
password.

I think there are better ways to fix the original issue, like being able to
specify HTTP username and password as a protocol option, or adding a protocol
option to percent-decode the URL first.

Signed-off-by: Marton Balint <cus@passwd.hu>
2019-05-18 17:07:21 +02:00
Marton Balint 328a96839d avfilter/vf_freezedetect: fix missing freeze_start when the freeze length is around the detection duration
Fixes ticket #7875.

Signed-off-by: Marton Balint <cus@passwd.hu>
2019-05-05 20:07:35 +02:00
Marton Balint 15b8f36be1 avdevice/decklink: fix checking video mode in SDK version 11
Apparently in the new SDK one cannot query if VANC output is supported, so we
will fall back to non-VANC output if enabling the video output with VANC fails.

Fixes ticket #7867.

Signed-off-by: Marton Balint <cus@passwd.hu>
2019-05-05 20:07:35 +02:00
Marton Balint 3dee6c0997 avformat/mxfdec: fix and enhance RIP KLV length checks
KLV length is BER encoded (variable size), but the code assumed the encoding to
always use 4 bytes.

Fixes parsing Random Index Pack in samples/MXF/issue2160/PW0805A0V01.4C5B5636.EFA330.mxf.

Signed-off-by: Marton Balint <cus@passwd.hu>
2019-04-28 21:55:28 +02:00
Marton Balint fc15e8306f avformat/mxfdec: take into account run-in in find_partition_by_offset
Also rename the function to find_partition_by_absolute_offset to make it clear
offset is absolute.

Signed-off-by: Marton Balint <cus@passwd.hu>
2019-04-28 21:55:28 +02:00
Marton Balint 5b6960f955 avformat/mxfdec: guess wrapping of tracks by other tracks with the same body sid
This affects the following samples:

samples/ffmpeg-bugs/roundup/issue1775/av_seek_frame_failure.mxf
samples/ffmpeg-bugs/trac/ticket1957/16ch.mxf
samples/ffmpeg-bugs/trac/ticket5016/r0.mxf
samples/ffmpeg-bugs/trac/ticket5016/r1.mxf
samples/ffmpeg-bugs/trac/ticket5316/hq.MXF
samples/ffmpeg-bugs/trac/ticket5316/hqx.MXF

Some AVPacket->pos values are changed because for frame wrapped tracks we point
to the KLV offset and not the data.

Signed-off-by: Marton Balint <cus@passwd.hu>
2019-04-28 21:55:28 +02:00
Marton Balint a5136426a7 avformat/mxfdec: rework mxf_essence_container_end
We find the last essence container much faster if we go through the partitions
backwards...

Signed-off-by: Marton Balint <cus@passwd.hu>
2019-04-28 21:55:28 +02:00
Marton Balint 63c2c83f6e avdevice/decklink_common: add support for DeckLink SDK 11
Fixes ticket #7789.

Signed-off-by: Marton Balint <cus@passwd.hu>
2019-04-15 22:22:31 +02:00
Marton Balint f3e22e3201 avdevice/decklink_common: properly check DoesSupportVideoMode result when trying VANC flag
Signed-off-by: Marton Balint <cus@passwd.hu>
2019-04-15 22:22:31 +02:00
Marton Balint e036b8dcf4 avdevice/decklink_dec: set configs before listing formats
Format list can be input and profile dependant.

Signed-off-by: Marton Balint <cus@passwd.hu>
2019-04-15 22:22:31 +02:00
Marton Balint f9840cd2b5 avformat/mxfdec: use operational_pattern_ul instead of operational_pattern for metadata
This makes it more consistent with other metadata keys.

Signed-off-by: Marton Balint <cus@passwd.hu>
2019-04-14 21:54:35 +02:00
Marton Balint 3e10223385 avformat/file: add seekable option to disallow seeking
Signed-off-by: Marton Balint <cus@passwd.hu>
2019-04-11 21:18:51 +02:00
Marton Balint 6ed7df5b20 avformat/mxfdec: export operational pattern UL as file metadata
Can be useful for API users as ffmpeg/libavformat can't properly support some
operational patterns.

Signed-off-by: Marton Balint <cus@passwd.hu>
2019-04-11 21:17:57 +02:00
Marton Balint 6af67dcc35 avfilter/af_astats: add support for optimized min/max/peak calculation
Signed-off-by: Marton Balint <cus@passwd.hu>
2019-03-21 00:39:57 +01:00
Marton Balint 5cc4b79b29 avfilter/af_astats: rework sample loops
The channel loop is now the outer loop for both planar and interleaved. This is
needed by the next patch, and the speed difference is negligable if any.

Signed-off-by: Marton Balint <cus@passwd.hu>
2019-03-21 00:39:57 +01:00
Marton Balint 235228ea50 avfilter/af_astats: factorize sample loops
Signed-off-by: Marton Balint <cus@passwd.hu>
2019-03-21 00:39:57 +01:00
Marton Balint 233fdd84c2 avfilter/af_astats: fix identation
Signed-off-by: Marton Balint <cus@passwd.hu>
2019-03-21 00:39:57 +01:00
Marton Balint e85f37d51e avfilter/af_astats: add support for selecting measured statistics
set_metadata with many entries is not very efficient, and with small audio
frames the performance loss is noticable. Also with this very simple
calculations (like peak) can be even further optimized.

Unfoturnately there are some small differences in metadata and av_log info
output, so factorizing calculations and output might not worth the hassle.

Signed-off-by: Marton Balint <cus@passwd.hu>
2019-03-21 00:39:57 +01:00
Marton Balint 694d9d5368 avcodec/get_bits: add assertion to limit ouptut value of get_bits
Should fix the following Coverity false positives:

Coverity CID #1415651.
Coverity CID #1420392.
Coverity CID #1420473.
Coverity CID #1433770.
Coverity CID #1435320.
Coverity CID #1439573.
Coverity CID #1439580.
Coverity CID #1439588.

Signed-off-by: Marton Balint <cus@passwd.hu>
2019-03-01 22:33:58 +01:00
Marton Balint 902e9334aa avcodec/get_bits: use unsigned integers in show_bits and get_bits
The return value is also unsigned.

Signed-off-by: Marton Balint <cus@passwd.hu>
2019-03-01 22:33:55 +01:00
Marton Balint 9f8854cb5a avcodec/avpacket: add some assertions to ensure pkt->data is not null if pkt->size > 0
This should fix the following Coverity false positives:

Coverity CID #1405450.
Coverity CID #1430930.

Signed-off-by: Marton Balint <cus@passwd.hu>
2019-03-01 22:32:32 +01:00
Marton Balint 57580e2ab6 avformat/utils: fix indentation
Signed-off-by: Marton Balint <cus@passwd.hu>
2019-03-01 22:31:00 +01:00
Marton Balint d4ae28e494 avformat/utils: be even more strict about stream specifiers
After this change we always parse the full specifier even if we know the result
in the middle of the parsing. Sligtly slower, but this is needed to
consistently reject incorrect specifiers in both matching and non-matching
cases.

Signed-off-by: Marton Balint <cus@passwd.hu>
2019-03-01 22:31:00 +01:00
Marton Balint 24e0e149ad avformat/utils: be more strict about stream specifiers
This reworks the code to be more strict about accepting stream specifiers. From
now on we strictly enforce the syntax in the documentation up until the
decisive part of the stream specifier. Therefore matching stream specifiers
always need to be correct, non matching specifiers only need to be correct
until the decisive part.

Also recursion is changed to a simple loop.

Signed-off-by: Marton Balint <cus@passwd.hu>
2019-03-01 22:31:00 +01:00
Marton Balint 837f2c9798 avformat/mpegtsenc: write format_identifier HEVC for HEVC streams
This improves compatibility with some consumer (LG WebOS) TVs which apparently
search a HEVC descriptor (which our mpegts muxer can't generate) or a format
identifier.

Since the HEVC format identifier is not registered (but used in the wild), it is
not written if strict_std_compliance is higher than normal.

This fixes the issue in ticket #7744.

Signed-off-by: Marton Balint <cus@passwd.hu>
2019-03-01 22:30:13 +01:00
Marton Balint fe36dcbff2 avformat/mpegtsenc: factorize writing registration_descriptor
Signed-off-by: Marton Balint <cus@passwd.hu>
2019-03-01 22:30:13 +01:00
Marton Balint a899b3b3c5 doc/formats: add reference to ffmpeg(1) stream specifiers as that docs is more complete
Signed-off-by: Marton Balint <cus@passwd.hu>
2019-02-21 21:29:35 +01:00
Marton Balint 5adc4a98b3 avformat/mpegtsenc: add support for service and provider names with utf8 encoding
Signed-off-by: Marton Balint <cus@passwd.hu>
2019-02-21 21:29:06 +01:00
Marton Balint dbfd042983 avformat/utils: parse some stream specifiers recursively
This removes lots of code duplication and also allows more complex specifiers,
for example you can use p:204:a:m:language:eng to select the English language
audio stream from program 204.

Signed-off-by: Marton Balint <cus@passwd.hu>
2019-02-13 23:21:53 +01:00
Marton Balint b35843e391 avformat/mpegts: also convert strings without a specified encoding to UTF-8
The default codepage (ISO6937) should be used in this case.

Signed-off-by: Marton Balint <cus@passwd.hu>
2019-02-13 22:01:39 +01:00
Marton Balint dd6dd49f1d avformat/mpegts: fix charset of type 0x11
ISO-10646 alone means UCS-4 for iconv, the specs refers to the Basic
Multilingual Plane (BMP), therefore we need UCS-2. VLC also using that.

Signed-off-by: Marton Balint <cus@passwd.hu>
2019-02-13 22:01:39 +01:00
Marton Balint 0c3333faf6 configure: warn about disabled explicitly enabled components
If we enable a component but a dependant library is disabled, then the enabled
component gets silently disabled. Warning about disabled explicitly enabled components
allows configure to show the missing dependencies and if --fatal-warnings is
used it can also fail if the user wants it so.

For example if libdav1d is not availble ./configure --enable-decoder=libdav1d
succeeds but the libdav1d decoder is not be enabled. After the patch configure
will warn about this:

WARNING: Disabled libdav1d_decoder because not all dependencies are satisfied: libdav1d

Signed-off-by: Marton Balint <cus@passwd.hu>
2019-02-11 22:01:48 +01:00
Marton Balint 7cab5471b2 ffplay: add support for setting the number of filter threads
Signed-off-by: Marton Balint <cus@passwd.hu>
2019-02-07 23:38:53 +01:00
Marton Balint fe99a51c40 ffplay: add missing avfilter_graph_alloc result check
Also do not allocate a graph at start, we will reallocate it anyway.

Signed-off-by: Marton Balint <cus@passwd.hu>
2019-02-07 23:38:53 +01:00
Marton Balint 28dd73a443 ffplay: use different decoder names for each media type
Signed-off-by: Marton Balint <cus@passwd.hu>
2019-02-07 23:38:53 +01:00
Marton Balint 4b46d1ee46 avformat/async: fix assertion condition when draining buffer
Fixes some random assertion failures with

ffprobe -show_packets async:samples/ffmpeg-bugs/trac/ticket6132/Samsung_HDR_-_Chasing_the_Light.ts > /dev/null

Signed-off-by: Marton Balint <cus@passwd.hu>
2019-02-04 21:43:30 +01:00
Marton Balint 56c58b99d0 avformat/mpegts: cache PID discard values
discard_pid can be quite expensive, so let's cache it and recalculate it on
every packet start.

ffmpeg -y -i samples/MPEG-VOB/sdtv/RAI.ts -c copy -map 0:v:0 -map 0:a:0 -f mpegts /dev/null

Before:
   1685 decicycles in handle_packet,  523483 runs,    805 skips

After:
    883 decicycles in handle_packet,  523505 runs,    783 skips

Signed-off-by: Marton Balint <cus@passwd.hu>
2019-02-04 21:43:30 +01:00
Marton Balint 483d029188 avcodec/motion_est: remove duplicate function
Signed-off-by: Marton Balint <cus@passwd.hu>
2019-01-28 21:46:58 +01:00
Marton Balint 1b126ec408 avformat/concatdec: always re-calculate start time and duration
This allows the underlying files to change their duration on subsequent
avformat context opens.

An example use case where this matters:

ffconcat version 1.0
file dummy.mxf
file dummy.mxf

ffmpeg -re -stream_loop -1 -i dummy.ffconcat -f sdl2 none

The user can seamlessly change the input by atomically replacing dummy.mxf.

v2: Set ConcatFile duration in read_header for all segments with known
durations because from now on we always recalculate the start time in
open_file, and an instant seek could have caused unset ConcatFile durations.

Signed-off-by: Marton Balint <cus@passwd.hu>
2019-01-22 20:14:11 +01:00
Marton Balint 679cbd8f18 avformat/concatdec: fix cur_dts based duration calculation with nonzero stream start_time
Signed-off-by: Marton Balint <cus@passwd.hu>
2019-01-22 20:14:11 +01:00
Marton Balint 0a98622cbe avformat/concatdec: factorize the duration calculating function
Signed-off-by: Marton Balint <cus@passwd.hu>
2019-01-22 20:14:11 +01:00
Marton Balint 7f42276aa9 avformat/concatdec: always allow seeking to start
Signed-off-by: Marton Balint <cus@passwd.hu>
2018-12-30 21:06:19 +01:00
Marton Balint f9e947845f avfilter/af_asetnsamples: fix last frame props
Frame properties were not copied, so e.g. PTS was not set for the last frame.

Regression since ef3babb2c7.

Signed-off-by: Marton Balint <cus@passwd.hu>
2018-12-30 20:05:34 +01:00
Marton Balint 70c86deb8e avformat/mxfenc: support writing subsecond precision timestamps
Signed-off-by: Marton Balint <cus@passwd.hu>
2018-12-25 20:16:29 +01:00
Marton Balint 02935c2c93 avformat/mxfdec: support subsecond precision of decoded timestamps
Signed-off-by: Marton Balint <cus@passwd.hu>
2018-12-25 20:16:29 +01:00
Marton Balint d0e43cf1a8 avformat/mxfdec: replace obsolete comment
We no longer use strftime directly but use av_timegm to get an int64_t timestamp.

Signed-off-by: Marton Balint <cus@passwd.hu>
2018-12-25 20:16:29 +01:00
Marton Balint dfd656632e avformat/avio: fix avio_feof documentation
It has been this way too long to change behaviour, so let's change the docs
instead.

Signed-off-by: Marton Balint <cus@passwd.hu>
2018-12-22 18:48:16 +01:00
Marton Balint c047901012 avdevice/decklink_enc: add support for setting genlock timing offset
Signed-off-by: Marton Balint <cus@passwd.hu>
2018-12-02 00:57:10 +01:00
Marton Balint 418c90faac ffplay: fix -x and -y options when only one of them is used
Previously if only -y was used then nothing happened, if only -x then zero
window height was set which is undefined in SDL and caused a black window.

From now on if only one dimension is set we calculate the other based on
size/aspect of the shown content.

Signed-off-by: Marton Balint <cus@passwd.hu>
2018-12-02 00:57:10 +01:00
Marton Balint 9a39c5449f ffplay: convert float math to int math in calculate_display_rect
Signed-off-by: Marton Balint <cus@passwd.hu>
2018-12-02 00:57:09 +01:00
Marton Balint e3a9630982 avcodec/mpeg_er: fix clearing chroma blocks for 422 and 444
Fixes ticket #7494.

Signed-off-by: Marton Balint <cus@passwd.hu>
2018-11-19 22:11:43 +01:00
Marton Balint 972ded33c0 avfilter/vf_freezedetect: add filter to detect frozen input
Signed-off-by: Marton Balint <cus@passwd.hu>
2018-11-19 22:11:42 +01:00
Marton Balint aecd63b926 avfilter/af_afade: fix duration maximum
Signed-off-by: Marton Balint <cus@passwd.hu>
2018-11-15 22:16:32 +01:00
Marton Balint 936d18fb42 avfilter/vf_minterpolate: use common scene sad functions
Signed-off-by: Marton Balint <cus@passwd.hu>
2018-11-11 20:30:50 +01:00
Marton Balint 7748f395de avfilter/vf_select: use common scene sad functions
Signed-off-by: Marton Balint <cus@passwd.hu>
2018-11-11 20:30:50 +01:00
Marton Balint 6c2a7a8e9a avfilter/vf_framerate: factorize SAD functions which compute SAD for a whole frame
Also add SIMD which works on lines because it is faster then calculating it on
8x8 blocks using pixelutils.

Signed-off-by: Marton Balint <cus@passwd.hu>
2018-11-11 20:30:50 +01:00
Marton Balint 8e5a2495a8 avformat/ftp: allow nonstandard 202 reply to OPTS UTF8
Fixes ticket #7481.

Signed-off-by: Marton Balint <cus@passwd.hu>
2018-11-04 22:46:58 +01:00
Marton Balint 6a034adf75 avformat/ftp: return AVERROR_EOF for EOF
Without this FTP just hangs on eof...

Signed-off-by: Marton Balint <cus@passwd.hu>
2018-11-01 21:04:57 +01:00
Marton Balint b02490a497 avcodec/libx264: remove FF_CODEC_CAP_INIT_THREADSAFE flag
Libx264 uses strtok which is not thread safe. Strtok is used in
x264_param_default_preset in param_apply_tune in x264/common/base.c.
Therefore the flag must be removed.

x264 fixed the issue, once the fix is pushed to stable, an #if can be added
to re-enable the flag based on X264_BUILD number.

Fixes ticket #7446.

Signed-off-by: Marton Balint <cus@passwd.hu>
2018-10-24 23:18:37 +02:00
Marton Balint f099946faf ffmpeg: log corrupted packets and frames
Signed-off-by: Marton Balint <cus@passwd.hu>
2018-10-14 23:52:41 +02:00
Marton Balint d6a1f711bc avfilter/af_asetnsamples: do not leak frame on ENOMEM
Fixes Coverity CID 1416352.

Signed-off-by: Marton Balint <cus@passwd.hu>
2018-10-09 21:46:28 +02:00
Marton Balint 6e6ecdf44d ffmpeg: check return value of avcodec_parameters_from_context
Fixes Coverity CID 1427273.

Signed-off-by: Marton Balint <cus@passwd.hu>
2018-10-09 21:46:28 +02:00
Marton Balint 4db291d764 avfilter/f_cue: always check the return value of ff_inlink_consume_frame
Fixes Coverity CID 1439936.

Signed-off-by: Marton Balint <cus@passwd.hu>
2018-10-09 21:46:28 +02:00
Marton Balint 416804fe41 avutil/tests/parseutils: add some big duration tests
Signed-off-by: Marton Balint <cus@passwd.hu>
2018-10-07 20:26:29 +02:00
Marton Balint 4c777d52b9 avutil/parseutils: fix some overflows in duration calculations
Also properly return AVERROR(ERANGE) in case of actual overflows.

Signed-off-by: Marton Balint <cus@passwd.hu>
2018-10-07 20:26:29 +02:00
Marton Balint d40dc64173 avutil/opt: check for minimum and maximum values when setting AV_OPT_TYPE_DURATION fields
Signed-off-by: Marton Balint <cus@passwd.hu>
2018-10-07 20:26:29 +02:00
Marton Balint 3bfd409e59 avformat/segment: fix segment_time_delta option min/max value
Signed-off-by: Marton Balint <cus@passwd.hu>
2018-10-07 20:26:29 +02:00
Marton Balint 0e9a09793a avfilter/af_afade: fix crossfade duration maximum value
Signed-off-by: Marton Balint <cus@passwd.hu>
2018-10-07 20:26:28 +02:00
Marton Balint 7ca2ee059e avfilter/f_cue: use inlink fifo for queueing frames
Signed-off-by: Marton Balint <cus@passwd.hu>
2018-10-03 22:09:49 +02:00
Marton Balint 8f14170b9a avfilter/filters: add ff_inlink_peek_frame and ff_inlink_queued_frames to access frames in the inlink fifo
Signed-off-by: Marton Balint <cus@passwd.hu>
2018-10-03 22:09:49 +02:00
Marton Balint 9344322573 doc/protocols: simplify and clarify UDP localaddr option
Signed-off-by: Marton Balint <cus@passwd.hu>
2018-10-03 22:03:29 +02:00
Marton Balint ab0812c1a8 avformat/udp: always use IP_ADD_SOURCE_MEMBERSHIP for subscribing to an UDP multicast source group in IPv4
That alone supports specifying the interface based on its address. Getting the
interface index from the local address seems quite a bit of work in a platform
independent way...

Obviously for IPv6 we still always use MCAST_JOIN_SOURCE_GROUP.

As a side effect this also fixes ticket #7459.

Signed-off-by: Marton Balint <cus@passwd.hu>
2018-10-03 22:03:29 +02:00
Marton Balint d3bda871f0 avformat/udp: specify the local address for some source filtered multicast joins
We already use localaddr for the multicast joins without source filters, so we
should use them for source filters as well. This patch only fixes the
IP_ADD_SOURCE_MEMBERSHIP and the IP_BLOCK_SOURCE case.

Unless we do this, the kernel automatically selects an interface based on the
source address, and that interface might be different from the one set in
localaddr. For blocked sources this even casues EINVAL because we joined the
multicast group on a different interface.

Signed-off-by: Marton Balint <cus@passwd.hu>
2018-10-03 22:03:29 +02:00
Marton Balint 91a1363452 avformat/udp: add support for generic source filtering
This allows getting data only from a specific source IP. This is useful not
only for unicast but for multicast as well because multicast source
subscriptions do not act as source filters for the incoming packets.

Signed-off-by: Marton Balint <cus@passwd.hu>
2018-10-03 22:03:29 +02:00
Marton Balint 9d4829f3c9 avformat/rtpproto: use factorized ip functions
Signed-off-by: Marton Balint <cus@passwd.hu>
2018-10-03 22:03:29 +02:00
Marton Balint 826972c9d8 avformat/udp: use factorized ip functions
Signed-off-by: Marton Balint <cus@passwd.hu>
2018-10-03 22:03:29 +02:00
Marton Balint 45fa756fa4 avformat/ip: factorize some IP filtering and resolving functions to a new file
These are based on the very similar UDP and RTP protocol functions.

Signed-off-by: Marton Balint <cus@passwd.hu>
2018-10-03 22:03:29 +02:00
Marton Balint b577153231 avcodec/libzvbi-teletextdec: add formatted ass output
Inspired by the VideoLAN text decoder and its port to FFmpeg made by Aman
Gupta.

Signed-off-by: Marton Balint <cus@passwd.hu>
2018-09-30 01:10:23 +02:00
Marton Balint db6b4b56b3 avdevice/decklink: add support for selecting devices based on their unique ID
Also bump the API version requirement to 10.9.5, because on olders versions
there were some reports of crashes using the undocumented, yet available
BMDDeckLinkDeviceHandle.

Signed-off-by: Marton Balint <cus@passwd.hu>
2018-09-23 18:55:29 +02:00
Marton Balint 37caec3dc4 avfilter/vf_framerate: switch to activate
Signed-off-by: Marton Balint <cus@passwd.hu>
2018-09-09 21:21:42 +02:00
Marton Balint 43d3b61abe avfilter/f_cue: add cue and acue filters
To delay filtering until a given wallclock timestamp.

Signed-off-by: Marton Balint <cus@passwd.hu>
2018-09-09 21:21:42 +02:00
Marton Balint 4737387d28 avutil/file: allow mapping 0 byte files with av_file_map
Signed-off-by: Marton Balint <cus@passwd.hu>
2018-09-09 21:21:42 +02:00
Marton Balint bd3c27fd7a avdevice/decklink_enc: add support for setting duplex mode
Signed-off-by: Marton Balint <cus@passwd.hu>
2018-09-09 21:21:42 +02:00
Marton Balint 6aaf1b504c avformat/mxfdec: do not use sound essence descriptor quantization bits for bits_per_coded_sample
It refers to the uncompressed quantization, therefore is not correct for AAC.

Also change mxf_set_pts to work based on current edit unit if
bits_per_coded_sample is not available.

Fixes error messages in the sample of ticket #7366.

Signed-off-by: Marton Balint <cus@passwd.hu>
2018-09-05 22:41:09 +02:00