- 07 Jan, 2020 1 commit
-
-
Marton Balint authored
To make it consistent with other muxers. The user can still control the generic flushing behaviour after write_header (same way as after packets) using the -flush_packets option, the default typically means to flush unless a non-streamed file output is used. Therefore this change should have no adverse effect on streaming, even if it is assumed that the first packet has a clean buffer, so small seekbacks within the output buffer work even when the IO context is not seekable. Signed-off-by: Marton Balint <cus@passwd.hu>
-
- 17 Aug, 2019 1 commit
-
-
Marton Balint authored
An example where the preivously added API can be useful. Also fixes ticket #6390. Signed-off-by: Marton Balint <cus@passwd.hu>
-
- 26 Feb, 2016 2 commits
-
-
Clément Bœsch authored
-
Clément Bœsch authored
-
- 23 Feb, 2016 1 commit
-
-
Anton Khirnov authored
Currently, AVStream contains an embedded AVCodecContext instance, which is used by demuxers to export stream parameters to the caller and by muxers to receive stream parameters from the caller. It is also used internally as the codec context that is passed to parsers. In addition, it is also widely used by the callers as the decoding (when demuxer) or encoding (when muxing) context, though this has been officially discouraged since Libav 11. There are multiple important problems with this approach: - the fields in AVCodecContext are in general one of * stream parameters * codec options * codec state However, it's not clear which ones are which. It is consequently unclear which fields are a demuxer allowed to set or a muxer allowed to read. This leads to erratic behaviour depending on whether decoding or encoding is being performed or not (and whether it uses the AVStream embedded codec context). - various synchronization issues arising from the fact that the same context is used by several different APIs (muxers/demuxers, parsers, bitstream filters and encoders/decoders) simultaneously, with there being no clear rules for who can modify what and the different processes being typically delayed with respect to each other. - avformat_find_stream_info() making it necessary to support opening and closing a single codec context multiple times, thus complicating the semantics of freeing various allocated objects in the codec context. Those problems are resolved by replacing the AVStream embedded codec context with a newly added AVCodecParameters instance, which stores only the stream parameters exported by the demuxers or read by the muxers.
-
- 04 Dec, 2015 1 commit
-
-
Clément Bœsch authored
-
- 16 Apr, 2015 1 commit
-
-
Rodger Combs authored
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-
- 04 Apr, 2015 1 commit
-
-
Rodger Combs authored
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-
- 15 Dec, 2014 1 commit
-
-
Michael Niedermayer authored
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-
- 01 Nov, 2014 1 commit
-
-
Rodger Combs authored
Signed-off-by: Clément Bœsch <u@pkh.me>
-
- 15 Oct, 2014 1 commit
-
-
Clément Bœsch authored
-
- 10 Oct, 2014 1 commit
-
-
Clément Bœsch authored
-
- 27 Sep, 2014 1 commit
-
-
Clément Bœsch authored
-
- 21 Sep, 2014 2 commits
-
-
Clément Bœsch authored
Before this commit, the code was muxing up to the 2nd line after "[Events]" (assuming it to be the "Format:" line). The remaining are generally "Comment:" directives which can stay in that place. mkvextract behaves that way so it seems there is no reason for that extra complexity.
-
Clément Bœsch authored
-
- 13 Sep, 2014 1 commit
-
-
Clément Bœsch authored
-
- 16 Sep, 2013 1 commit
-
-
Clément Bœsch authored
Since 596e5d47, this is not necessary anymore. It also allows to actually disable the flushing, improving write performance (but possibly giving worse latency in real-time streaming). Signed-off-by: Martin Storsjö <martin@martin.st>
-
- 18 Apr, 2013 1 commit
-
-
Clément Bœsch authored
Currently, we have a AV_CODEC_ID_SSA, which matches the way the ASS/SSA markup is muxed in a standalone .ass/.ssa file. This means the AVPacket data starts with a "Dialogue:" string, followed by a timing information (start and end of the event as string) and a trailing CRLF after each line. One packet can contain several lines. We'll refer to this layout as "SSA" or "SSA lines". In matroska, this markup is not stored as such: it has no "Dialogue:" prefix, it contains a ReadOrder field, the timing information is not in the payload, and it doesn't contain the trailing CRLF. See [1] for more info. We'll refer to this layout as "ASS". Since we have only one common codec for both formats, the matroska demuxer is constructing an AVPacket following the "SSA lines" format. This causes several problems, so it was decided to change this into clean ASS packets. Some insight about what is changed or unchanged in this commit: CODECS ------ - the decoding process still writes "SSA lines" markup inside the ass fields of the subtitles rectangles (sub->rects[n]->ass), which is still the current common way of representing decoded subtitles markup. It is meant to change later. - new ASS codec id: AV_CODEC_ID_ASS (which is different from the legacy AV_CODEC_ID_SSA) - lavc/assdec: the "ass" decoder is renamed into "ssa" (instead of "ass") for consistency with the codec id and allows to add a real ass decoder. This ass decoder receives clean ASS lines (so it starts with a ReadOrder, is followed by the Layer, etc). We make sure this is decoded properly in a new ass-line rectangle of the decoded subtitles (the ssa decoder OTOH is doing a simple straightforward copy). Using the packet timing instead of data string makes sure the ass-line now contains the appropriate timing. - lavc/assenc: just like the ass decoder, the "ssa" encoder is renamed into "ssa" (instead of "ass") for consistency with the codec id, and allows to add a real "ass" encoder. One important thing about this encoder is that it only supports one ass rectangle: we could have put several dialogue events in the AVPacket (separated by a \0 for instance) but this would have cause trouble for the muxer which needs not only the start time, but also the duration: typically, you have merged events with the same start time (stored in the AVPacket->pts) but a different duration. At the moment, only the matroska do the merge with the SSA-line codec. We will need to make sure all the decoders in the future can't add more than one rectangle (and only one Dialogue line in it obviously). FORMATS ------- - lavf/assenc: the .ass/.ssa muxer can take both SSA and ASS packets. In the case of ASS packets as input, it adds the timing based on the AVPacket pts and duration, and mux it with "Dialogue:", trailing CRLF, etc. - lavf/assdec: unchanged; it currently still only outputs SSA-lines packets. - lavf/mkv: the demuxer can now output ASS packets without the need of any "SSA-lines" reconstruction hack. It will become the default at next libavformat bump, and the SSA support will be dropped from the demuxer. The muxer can take ASS packets since it's muxed normally, and still supports the old SSA packets. All the SSA support and hacks in Matroska code will be dropped at next lavf bump. [1]: http://www.matroska.org/technical/specs/subtitles/ssa.html
-
- 14 Apr, 2013 1 commit
-
-
Clément Bœsch authored
Since 4f112a8e, this is not necessary anymore. Also, it allows to actually disable the flushing.
-
- 11 Nov, 2012 1 commit
-
-
Clément Bœsch authored
ASS can have several events at the same time.
-
- 15 Sep, 2012 1 commit
-
-
Anton Khirnov authored
This is consistent with stdio and is what we want to do in all cases. Fixes a bug in the voc muxer which didn't flush in write_trailer() previously. This is the cause of the change in the test results.
-
- 07 Aug, 2012 1 commit
-
-
Anton Khirnov authored
-
- 30 Jul, 2012 2 commits
-
-
Diego Biurrun authored
-
Diego Biurrun authored
-
- 19 Mar, 2011 1 commit
-
-
Mans Rullgard authored
Signed-off-by: Mans Rullgard <mans@mansr.com>
-
- 17 Mar, 2011 1 commit
-
-
Anton Khirnov authored
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
-
- 22 Feb, 2011 1 commit
-
-
Anton Khirnov authored
In the name of consistency: put_byte -> avio_w8 put_<type> -> avio_w<type> put_buffer -> avio_write put_nbyte will be made private put_tag will be merged with avio_put_str Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com> (cherry picked from commit 77eb5504)
-
- 21 Feb, 2011 1 commit
-
-
Anton Khirnov authored
In the name of consistency: put_byte -> avio_w8 put_<type> -> avio_w<type> put_buffer -> avio_write put_nbyte will be made private put_tag will be merged with avio_put_str Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
-
- 28 Jan, 2011 1 commit
-
-
Diego Elio Pettenò authored
This also lists the objects from those two libraries as internal (by adding the ff_ prefix) so that they can then be hidden via linker scripts. (cherry picked from commit c6610a21)
-
- 26 Jan, 2011 1 commit
-
-
Diego Elio Pettenò authored
This also lists the objects from those two libraries as internal (by adding the ff_ prefix) so that they can then be hidden via linker scripts.
-
- 04 Dec, 2010 3 commits
-
-
Aurelien Jacobs authored
Originally committed as revision 25870 to svn://svn.ffmpeg.org/ffmpeg/trunk
-
Aurelien Jacobs authored
Originally committed as revision 25869 to svn://svn.ffmpeg.org/ffmpeg/trunk
-
Aurelien Jacobs authored
Originally committed as revision 25868 to svn://svn.ffmpeg.org/ffmpeg/trunk
-
- 25 Jul, 2010 1 commit
-
-
Aurelien Jacobs authored
Originally committed as revision 24502 to svn://svn.ffmpeg.org/ffmpeg/trunk
-
- 07 Jul, 2010 1 commit
-
-
Aurelien Jacobs authored
Originally committed as revision 24084 to svn://svn.ffmpeg.org/ffmpeg/trunk
-
- 26 Sep, 2008 1 commit
-
-
Michael Niedermayer authored
Originally committed as revision 15430 to svn://svn.ffmpeg.org/ffmpeg/trunk
-