aboutsummaryrefslogtreecommitdiffstats
path: root/libavformat/matroskaenc.c
Commit message (Collapse)AuthorAgeFilesLines
* matroska: Add the CueDuration elementJames Almer2013-09-211-5/+11
| | | | | | | | | Use it only on subtitle CuePoints. With proper demuxer/splitter support this should improve the display of subtitles right after seeking to a given point in the stream. Signed-off-by: James Almer <jamrial@gmail.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* matroskaenc: Add CuePoints for subtitle tracksJames Almer2013-09-201-1/+1
| | | | | Signed-off-by: James Almer <jamrial@gmail.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* matroskaenc: Write muxingapp and writingapp elements when using bitexact flagJames Almer2013-09-181-0/+4
| | | | | | | | Files won't validate with mkvalidtor if these two elements are missing. Use a const "Lavf" string that wont change with library version bumps. Signed-off-by: James Almer <jamrial@gmail.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* matroskaenc: Bump DocTypeVersion to 4James Almer2013-09-151-1/+1
| | | | | | | | | The muxer has been creating files with v4 elements for some time now, and especially now that we can mux non-experimental Opus files, reporting the DocTypeVersion as 2 is not correct. Signed-off-by: James Almer <jamrial@gmail.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* Merge remote-tracking branch 'qatar/master'Michael Niedermayer2013-09-121-8/+8
|\ | | | | | | | | | | | | | | | | | | | | | | * qatar/master: matroskaenc: Fix stray pointers left over from av_reallocp_array refactoring Conflicts: libavformat/matroskaenc.c Mostly not merged as the buggy code was no longer part of FFmpeg Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * matroskaenc: Fix stray pointers left over from av_reallocp_array refactoringAlexandra Khirnova2013-09-121-13/+9
| | | | | | | | Signed-off-by: Diego Biurrun <diego@biurrun.de>
* | avformat/matroskaenc: use av_realloc_array()Michael Niedermayer2013-09-111-2/+2
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | avformat/matroskaenc: use av_freep() to avoid leaving stale pointersMichael Niedermayer2013-09-111-2/+2
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | avformat/matroskaenc: functions that add entries should not destroy the ↵Michael Niedermayer2013-09-111-12/+6
| | | | | | | | | | | | | | | | whole list on failure This reverts a hunk from "avformat: Use av_reallocp_array() where suitable" Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge commit 'f369b9356c4606cd4d713d60f7db5de119d901fa'Michael Niedermayer2013-09-111-6/+12
|\| | | | | | | | | | | | | | | | | | | | | | | * commit 'f369b9356c4606cd4d713d60f7db5de119d901fa': avformat: Use av_reallocp_array() where suitable Conflicts: libavformat/asfenc.c libavformat/gxfenc.c libavformat/mov.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * avformat: Use av_reallocp_array() where suitableAlexandra Khirnova2013-09-101-6/+12
| | | | | | | | Signed-off-by: Diego Biurrun <diego@biurrun.de>
* | lavf/matroska: Adding support for Opus CodecDelayVignesh Venkatasubramanian2013-09-101-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | In order to represent the codec delay accurately in Matroska, a new element CodecDelay has been introduced. It contains the overall delay added by the codec in nanoseconds. This patch adds support for muxing CodecDelay value in the container. Matroska spec for CodecDelay element can be found here: http://matroska.org/technical/specs/index.html#CodecDelay Signed-off-by: Vignesh Venkatasubramanian <vigneshv@google.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | opus/matroska: Adding support for DiscardPadding in muxerVignesh Venkatasubramanian2013-09-101-2/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Support for end trimming Opus in Matroska is implemented by using the DiscardPadding container element in the Block data. The last chunk is stored as a Block instead of SimpleBlock and the trimming information is stored and used to discard samples that were padded by the Opus codec. This patch adds support for muxing DiscardPadding element into the container with appropriate value. Matroska spec for the DiscardPadding element can be found here: http://matroska.org/technical/specs/index.html#DiscardPadding Signed-off-by: Vignesh Venkatasubramanian <vigneshv@google.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | avformat/subtitles: add a next line jumper and use it.Clément Bœsch2013-09-081-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | This fixes a bunch of possible overread in avformat with the idiom p += strcspn(p, "\n") + 1 (strcspn() can focus on the trailing '\0' if no '\n' is found, so the +1 leads to an overread). Note on lavf/matroskaenc: no extra subtitles.o Makefile dependency is added because only the header is required for ff_subtitles_next_line(). Note on lavf/mpsubdec: code gets slightly complex to avoid an infinite loop in the probing since there is no more forced increment.
* | avformat/matroskaenc: remove bogus prores tagPaul B Mahol2013-09-081-1/+0
| | | | | | | | | | | | Fixes: ffmpeg -i input -c:v prores output.mkv Signed-off-by: Paul B Mahol <onemda@gmail.com>
* | Merge remote-tracking branch 'qatar/master'Michael Niedermayer2013-09-051-1/+9
|\| | | | | | | | | | | | | | | | | | | * qatar/master: matroskaenc: Allow chapters to be written in trailer Conflicts: libavformat/matroskaenc.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * matroskaenc: Allow chapters to be written in trailerJohn Stebbins2013-09-041-1/+9
| | | | | | | | | | | | | | | | This allows creation of frame accurate chapter marks from sources like DVD and BD where the precise chapter location is not known until the chapter mark has been reached during reading. Signed-off-by: Anton Khirnov <anton@khirnov.net>
* | Merge commit 'f812eeda17e38797df5cb733ce99cdfd829d84ca'Michael Niedermayer2013-08-281-2/+4
|\| | | | | | | | | | | | | | | | | | | | | | | | | * commit 'f812eeda17e38797df5cb733ce99cdfd829d84ca': matroskaenc: Fix writing TRACKDEFAULTFLAG Conflicts: libavformat/matroskaenc.c tests/fate/wavpack.mak tests/ref/lavf/mkv tests/ref/seek/lavf-mkv Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * matroskaenc: Fix writing TRACKDEFAULTFLAGJohn Stebbins2013-08-271-1/+3
| | | | | | | | | | | | | | | | The element was only being written when the value == 1. But the default value of this element is 1, so this has no useful effect. This element needs to be written when the value == 0. Signed-off-by: Anton Khirnov <anton@khirnov.net>
* | Merge commit 'b886f5c2f1e71b3e60e4265c500158d392b4b9a4'Michael Niedermayer2013-08-201-6/+30
|\| | | | | | | | | | | | | | | | | | | | | * commit 'b886f5c2f1e71b3e60e4265c500158d392b4b9a4': mkv: Allow flushing the current cluster in progress Conflicts: libavformat/matroskaenc.c libavformat/version.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * mkv: Allow flushing the current cluster in progressMartin Storsjö2013-08-191-6/+30
| | | | | | | | | | | | | | | | Allow emitting the current cluster that is being written before starting a new one, simplifying how to figure out where clusters are positioned in the output stream (for live streaming). Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* | Merge commit '59f595921eb2b848a80a74aa81b6bb43038c9ebe'Michael Niedermayer2013-08-201-0/+1
|\| | | | | | | | | | | | | * commit '59f595921eb2b848a80a74aa81b6bb43038c9ebe': mkv: Flush the old cluster before writing a new one Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * mkv: Flush the old cluster before writing a new oneLuca Barbato2013-08-191-0/+1
| | | | | | | | | | | | | | This simplifies keeping track of cluster boundaries for e.g. livestreaming of WebM. Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* | Merge commit '98308bd44face14ea3142b501d16226eec23b75a'Michael Niedermayer2013-08-201-10/+22
|\| | | | | | | | | | | | | | | | | | | * commit '98308bd44face14ea3142b501d16226eec23b75a': mkv: Add options for specifying cluster limits Conflicts: libavformat/matroskaenc.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * mkv: Add options for specifying cluster limitsLuca Barbato2013-08-191-10/+22
| | | | | | | | Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* | Merge commit '148fbdd1c2a2a88a78ba9fd152c81c840bdb205a'Michael Niedermayer2013-08-201-10/+32
|\| | | | | | | | | | | | | | | | | | | * commit '148fbdd1c2a2a88a78ba9fd152c81c840bdb205a': mkv: Refactor mkv_write_packet Conflicts: libavformat/matroskaenc.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * mkv: Refactor mkv_write_packetLuca Barbato2013-08-191-10/+32
| | | | | | | | Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* | matroskaenc: remove unneeded wavpack tagPaul B Mahol2013-08-191-1/+0
| | | | | | | | Signed-off-by: Paul B Mahol <onemda@gmail.com>
* | lavf/matroska: Adding the new SeekPreRoll elementVignesh Venkatasubramanian2013-08-181-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | In order to encapsuate Opus in Matroska, there is a new element that has been added to the Matroska Spec, SeekPreRoll. It has the duration in nanoseconds that has to be decoded before every seek. Spec: http://matroska.org/technical/specs/index.html#SeekPreRoll Proposal for encapsulateing Opus in Matroska: http://wiki.xiph.org/MatroskaOpus Signed-off-by: Vignesh Venkatasubramanian <vigneshv@google.com> Reviewed-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | avformat/matroskaenc: make 2 tables static that are not used outside matroskaencMichael Niedermayer2013-08-021-2/+2
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | matroskaenc: implement CueRelativePositionBernie Habermeier2013-07-241-7/+13
| | | | | | | | | | | | | | | | | | | | This is a minimal change to matroskaenc that implements CueRelativePosition in the output. Most players will probably ignore this additional information, but it is in the matroska spec, and it'd be nice to be able to make use of it. Signed-off-by: Bernt Habermeier <bernt@wulfram.com> Tested-by: wm4 <nfxjfg@googlemail.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | avformat/matroskaenc: Only change chapter ids if needed.Michael Niedermayer2013-07-191-2/+8
| | | | | | | | | | | | | | | | This also fixes the case where negative chapter ids where input And fixes the case where remuxing from mkv changed chapter ids Found-by: Luca Barbato Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | lavf/matroskaenc: using valid chapter idsFabian Neundorf2013-07-181-2/+2
| | | | | | | | | | | | | | Fixes ticket 2790, by starting the ChapterUIDs in mkv files with 1 instead of a 0.   Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | matroskaenc: simplify mkv_check_tag()Michael Niedermayer2013-07-171-3/+2
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | lavf/matroskaenc: Check for valid metadata before creating tagsJames Almer2013-07-171-3/+15
| | | | | | | | | | | | | | | | | | | | | | Tags must have at least one SimpleTag element to be spec conformant. Updated lavf-mkv and seek-lavf-mkv FATE references as the tests were affected by this. Fixes ticket #2785 Signed-off-by: James Almer <jamrial@gmail.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | matroskaenc: use ffio_fill()Paul B Mahol2013-07-161-7/+4
| | | | | | | | Signed-off-by: Paul B Mahol <onemda@gmail.com>
* | mastroka audio muxer: Set long_name to Matroska Audio so that it differs ↵Alexis Ballier2013-07-161-1/+1
| | | | | | | | | | | | from the long_name of matroska video. Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | WebM muxer writes WebVTT subtitle trackMatthew Heaney2013-07-091-13/+84
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The Matroska muxer now allows WebVTT subtitle tracks to be written while in WebM muxing mode. WebVTT subtitle tracks have four kinds: "subtitles", "captions", "descriptions", and "metadata". Each text track kind has a distinct Mastroska CodecID and track type, as described in the temporal metadata guidelines here: http://wiki.webmproject.org/webm-metadata/temporal-metadata/webvtt-in-webm When the stream has codec id AV_CODEC_ID_WEBVTT, the stream packet is serialized per the temporal metadata guidelines cited above. The WebVTT cue is written as a Matroska block group. The block frame comprises the WebVTT cue id, followed by the cue settings, followed by the cue text. (The block timestamp is synthesized from the cue timestamp.) Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | avformat/matroskaenc: Allow VP9 and Opus in webmTudor Suciu2013-07-031-1/+3
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge commit 'c3e58f8fb75d8467161a65b85eb88281547ebab1'Michael Niedermayer2013-06-241-2/+5
|\| | | | | | | | | | | | | * commit 'c3e58f8fb75d8467161a65b85eb88281547ebab1': matroskaenc: restore compatibility with non referenced AVPacket Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * matroskaenc: restore compatibility with non referenced AVPacketRafaël Carré2013-06-241-2/+5
| | | | | | | | Signed-off-by: Anton Khirnov <anton@khirnov.net>
* | Merge commit '2d2d6a4883479403798f4ed46941d5b365823570'Michael Niedermayer2013-05-291-1/+72
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit '2d2d6a4883479403798f4ed46941d5b365823570': lavf: add a raw WavPack muxer. apetag: add support for writing APE tags matroskaenc: support muxing WavPack Conflicts: libavformat/Makefile libavformat/allformats.c libavformat/apetag.h libavformat/version.h libavformat/wvenc.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * matroskaenc: support muxing WavPackAnton Khirnov2013-05-281-1/+72
| |
* | vformat/matroskaenc: factorize alpha code in mkv_write_block()Michael Niedermayer2013-05-171-19/+14
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Adding support for muxing VP8 Alpha filesVignesh Venkatasubramanian2013-05-171-10/+49
| | | | | | | | | | | | | | | | | | This patch adds support for muxing VP8 Alpha Files. The Alpha channel data is placed in BlockAdditional element of the matroska container. More information & exact spec on how this is implemented can be found here: http://goo.gl/wCP1y Signed-off-by: Vignesh Venkatasubramanian <vigneshv@google.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | lavf/matroskaenc: return an error for unsupported types.Nicolas George2013-05-041-1/+1
| |
* | Merge commit 'e3b225a4fe0ff1e64a220b757c6f0a5cf9258521'Michael Niedermayer2013-05-031-1/+63
|\| | | | | | | | | | | | | | | | | | | | | | | * commit 'e3b225a4fe0ff1e64a220b757c6f0a5cf9258521': matroskaenc: add an option to put the index at the start of the file Conflicts: doc/muxers.texi libavformat/matroskaenc.c libavformat/version.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * matroskaenc: add an option to put the index at the start of the fileAnton Khirnov2013-05-031-1/+63
| |
* | Merge commit '0574bc06d23a6690a16c5926dddc9be359a3d7bb'Michael Niedermayer2013-05-031-10/+12
|\| | | | | | | | | | | | | | | | | | | * commit '0574bc06d23a6690a16c5926dddc9be359a3d7bb': matroskaenc: cosmetics, reorder the #includes Conflicts: libavformat/matroskaenc.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * matroskaenc: cosmetics, reorder the #includesAnton Khirnov2013-05-031-9/+11
| |