Commit Graph

69 Commits

Author SHA1 Message Date
Carl Eugen Hoyos
4d8875ec23 lavf: Constify the probe function argument.
Reviewed-by: Lauri Kasanen
Reviewed-by: Tomas Härdin
2019-03-21 11:42:17 +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
37d472a906 avformat/concatdec: only set output stream index before returning packet
Fixes ticket #6434.

Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Marton Balint <cus@passwd.hu>
2018-04-02 20:41:53 +02:00
Marton Balint
ffabff1baa avformat/concatdec: add support for very long line sizes
Fixes ticket #6761.

Signed-off-by: Marton Balint <cus@passwd.hu>
2018-02-24 20:21:35 +01:00
Marton Balint
18ac642359 avformat: migrate to AVFormatContext->url
Signed-off-by: Marton Balint <cus@passwd.hu>
2018-01-28 23:06:43 +01:00
Nicolas George
e45f7bca73 lavf/concatdec: properly init streams timestamp parameters.
pts_wrap_bits defaults to 33 (like MPEG), that causes valid
timestamps to be unwrapped and become invalid.
Inspired by a patch by Wu Zhiqiang <mymoeyard@gmail.com>.
2017-12-31 10:33:24 +01:00
Justin Ruggles
1a0d9b503d avformat/concatdec: add fallback for calculating file duration
If a file does not have a known duration, this leads to the timestamps
starting over for the next file, causing non-monotonic timestamps.
To prevent this, track the duration during demuxing and use it to
determine the current file duration before opening the next file.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2017-08-31 15:33:52 +01:00
Derek Buitenhuis
99c68861f9 concatdec: Do not pass NULL to memcmp
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2017-07-06 15:35:32 -04:00
Clément Bœsch
0dcac9c3f0 lavf/concatdec: do not transfer custom IO flag
If the source is using a custom IO, setting this flag causes heavy leaks
since the segments will not have their avio context closed.

Regression since f5da453b06.
2017-05-22 16:55:30 +02:00
James Almer
14e092448f avformat/concatdec: port to the new bitstream filter API
Reviewed-by: wm4 <nfxjfg@googlemail.com>
Reviewed-by: Aaron Levinson <alevinsn@aracnet.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2017-05-03 19:59:49 -03:00
James Almer
b4330a0e02 avformat/concatdec: fix the h264 annexb extradata check
The start code can be either in the first three or four bytes.
2017-04-25 20:23:12 -03:00
wm4
f5da453b06 concatdec: pass AVFormatContext flags to sub demuxer 2017-03-09 16:24:00 +01:00
raymondzheng1412@gmail.com
2366efce3c avformat/concatdec: don't call open_file when seek position within a file 2016-09-28 20:31:22 +02:00
Nicolas George
0cb19c30c6 lavf/concatdec: clear extradata when inserting h264_mp4toannexb bsf.
Fix remuxing H.264-in-MP4 to Matroska, possibly others.
2016-04-26 16:58:59 +02:00
Nicolas George
b8fa374fb6 lavf/concatdec: remove unrelated change during codecpar merge.
Clearing the extradata is not related to the codecpar change,
and it breaks if auto_convert is disabled.

Fix trac ticket #5461.
2016-04-26 16:58:59 +02:00
Timo Rothenpieler
901b0f1a21 avformat/concatdec: Use correct stream count on close 2016-04-11 21:06:10 +02:00
Derek Buitenhuis
6f69f7a8bf Merge commit '9200514ad8717c63f82101dc394f4378854325bf'
* commit '9200514ad8717c63f82101dc394f4378854325bf':
  lavf: replace AVStream.codec with AVStream.codecpar

This has been a HUGE effort from:
    - Derek Buitenhuis <derek.buitenhuis@gmail.com>
    - Hendrik Leppkes <h.leppkes@gmail.com>
    - wm4 <nfxjfg@googlemail.com>
    - Clément Bœsch <clement@stupeflix.com>
    - James Almer <jamrial@gmail.com>
    - Michael Niedermayer <michael@niedermayer.cc>
    - Rostislav Pehlivanov <atomnuker@gmail.com>

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-10 20:59:55 +01:00
Michael Niedermayer
689211d572 avformat/concatdec: set safe mode to enabled instead of auto
This is safer, as a selected demuxer could still mean that it was auto-detected
by a user application

Reviewed-previously-by: Nicolas George <george@nsup.org>
Reviewed-previously-by: Andreas Cadhalpun <andreas.cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-10 02:54:59 +01:00
Derek Buitenhuis
93629735d7 avformat: Add a protocol blacklisting API
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-03-04 16:13:42 +00:00
Marton Balint
fdb2d4b108 lavf/concatdec: do not access packet if av_read_frame returned error
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-01-10 14:13:16 +01:00
Clément Bœsch
43ecec0f03 avformat: use AV_OPT_TYPE_BOOL in a bunch of places 2015-12-04 15:43:33 +01:00
Marton Balint
65406b0bed concatdec: add option for adding segment start time and duration metadata
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Marton Balint <cus@passwd.hu>
2015-11-25 00:34:29 +01:00
Marton Balint
ba9191ab3a concatdec: simplify duration calculation in open_next_file
If duration is still AV_NOPTS_VALUE when opening the next file, we can assume
that outpoint is not set.

Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Marton Balint <cus@passwd.hu>
2015-11-25 00:34:29 +01:00
Marton Balint
8f60663c8b concatdec: calculate duration early if outpoint is known
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Marton Balint <cus@passwd.hu>
2015-11-25 00:34:29 +01:00
Hendrik Leppkes
c2f861ca42 Replace remaining occurances of av_free_packet with av_packet_unref 2015-10-27 14:35:30 +01:00
Marton Balint
df239b7619 concatdec: fix file_start_time calculation regression
Fixes ticket #4924.

Found-by: Jaroslav Šnajdr <jsnajdr@gmail.com>
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Marton Balint <cus@passwd.hu>
2015-10-17 18:38:52 +02:00
Marton Balint
80b6cc4214 concatdec: fix metadata memleak on error
Fixes Coverity CID 1323077.

Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Marton Balint <cus@passwd.hu>
2015-10-05 00:16:12 +02:00
Michael Niedermayer
9f6ca28e32 avformat/concatdec: Check file variable before dereferencing
Fixes CID1322328

Reviewed-by: Ganesh Ajjanagadde <gajjanag@mit.edu>
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-03 18:53:44 +02:00
Marton Balint
0860016529 concatdec: fix broken file_inpoint calculation
Should fix ticket #4765.

Signed-off-by: Marton Balint <cus@passwd.hu>
2015-08-11 11:19:17 +02:00
Marton Balint
5117b5e9aa concatdec: add support for injecting packet metadata
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Marton Balint <cus@passwd.hu>
2015-07-17 00:12:04 +02:00
Marton Balint
25a6711c25 concatdec: add support for specifying outpoint of files
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Marton Balint <cus@passwd.hu>
2015-07-17 00:12:04 +02:00
Marton Balint
12d82004c5 concatdec: store eof condition in context
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>
2015-07-17 00:12:04 +02:00
Marton Balint
7ff0137a1f concatdec: add support for specifying inpoint of files
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Marton Balint <cus@passwd.hu>
2015-07-17 00:12:04 +02:00
Vadim Belov
db64af6395 avformat/concatdec: copy stream metadata when using concat
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-01 14:43:31 +02:00
Michael Niedermayer
3331213e2a avformat/concatdec: Enable auto_convert by default
Users have no means to find out from a failure how to make it work
or is it preferred to check and print a warning for h264 concat without auto_convert ?

Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-29 12:19:47 +02:00
Zhang Rui
038f3a173f avformat/concatdec: avoid NULL dereference when failed to open file.
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-01-29 14:25:04 +01:00
Nicolas George
acbc2ed26a lavf/concatdec: handle NOPTS start_time.
Fix trac ticket #3598.

Signed-off-by: Nicolas George <george@nsup.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-15 20:00:35 +01:00
Stefano Sabatini
484d42a097 lavf/concatdec: add timestamp log
Help debugging timestamp conversion issues.
2014-11-19 11:17:43 +01:00
Michael Niedermayer
4641ae352e avformat: Add and use ff_copy_whitelists()
Fixes potential security issue in case of running out of memory

Found-by: ubitux
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-24 19:23:23 +02:00
Michael Niedermayer
5ea0753a15 avformat/concatdec: Forward whitelists to the subdemuxers.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-23 18:19:37 +02:00
Michael Niedermayer
3294fc8c47 avformat/concatdec: fix "warning: explicitly assigning a variable of type int to itself"
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-10 11:48:39 +02:00
Nicolas George
50ed6e3ce6 lavf/concatdec: implement automatic conversions. 2014-04-29 13:25:59 +02:00
Nicolas George
9d24a536a3 lavf/concatdec: reindent after last commit. 2014-04-29 13:25:59 +02:00
Nicolas George
b24d6c5303 lavf/concatdec: always do stream matching. 2014-04-29 13:25:59 +02:00
Nicolas George
c27939d871 lavf/concatdec: check match_streams() return value. 2014-04-29 13:25:59 +02:00
Nicolas George
e973cf04f6 lavf/concatdec: use a structure for each stream. 2014-04-29 13:25:59 +02:00
Nicolas George
26dea7731e lavf/concatdec: allow to match streams by id.
That makes the concat demuxer usable with MPEG-PS streams,
even when the streams in the different parts are detected
in different order.
2014-03-23 19:15:07 +01:00