summaryrefslogtreecommitdiff
path: root/libavformat/matroska.h
Commit message (Collapse)AuthorAge
* avformat/matroskadec: Add support for FlagOriginalAndreas Rheinhardt2021-03-02
| | | | | | | | | | | | | | | | Needs a CountedElement in order to distinguish the case of the element not being present and the element being present with a value of zero. (It has been argued by Ridley Combs that one should only ever use the AV_DISPOSITION_DUB field for audio tracks. Yet given that there is no definition for the disposition flags, one can also interpret it to mean that e.g. a subtitle track is meant to be used with the dubbed audio track or the original audio track. This commit interprets this flag in this sense, which also allows to maintain it on remuxing.) Reviewed-by: Anton Khirnov <anton@khirnov.net> Reviewed-by: Ridley Combs <rcombs@rcombs.me> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
* avformat/matroskadec: Add support for FlagTextDescriptionsAndreas Rheinhardt2021-02-22
| | | | | | | | This is the equivalent of the WebM "D_WEBVTT/DESCRIPTIONS" and is therefore only exported for subtitles. Reviewed-by: Ridley Combs <rcombs@rcombs.me> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
* avformat/matroskadec: Add support for FlagHearing/VisualImpairedAndreas Rheinhardt2021-02-22
| | | | | | | | | | Given that our disposition flags provide no way to distinguish the cases of "track is unsuitable for hearing impaired users" and "it is unknown whether the track is suitable for hearing impaired users" we do not need to use a CountedElement for these flags. Reviewed-by: Ridley Combs <rcombs@rcombs.me> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
* avformat/matroskadec: Add support for FlagCommentaryAndreas Rheinhardt2021-02-22
| | | | | | | | | | Hint: Matroska actually provides a way to distinguish the cases of "track is no commentary track" and "it is unknown whether the track is a commentary track", but our disposition flags do not. Therefore we need not use a CountedElement. Reviewed-by: Ridley Combs <rcombs@rcombs.me> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
* avformat/matroska: Move mime_tag lists to matroskadecAndreas Rheinhardt2020-04-20
| | | | | | They are not used any more by the muxer. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
* avformat/matroska: clean the structure formattingSteve Lhomme2020-04-03
| | | | | | Always use a comma at the end, order elements by value. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
* avformat/matroska: add missing Buttons track typeSteve Lhomme2020-03-25
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
* avformat/matroskaenc: implement AVOutputFormat.query_codec for webmJames Almer2018-09-26
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* avformat/matroskadec: add support for Spherical Video elementsJames Almer2016-12-07
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* avformat/matroskadec: support parsing Chroma Location elementsJames Almer2016-10-18
| | | | | Reviewed-by: Michael Niedermayer <michael@niedermayer.cc> Signed-off-by: James Almer <jamrial@gmail.com>
* avformat/matroskadec: set aspect ratio only when DisplayWidth and ↵James Almer2016-10-15
| | | | | | | | | | | | | DisplayHeight are in pixels A missing DisplayUnit element or one with the default value of 0 means DisplayWidth and DisplayHeight should be interpreted as pixels. The current code setting st->sample_aspect_ratio is wrong when DisplayUnit is anything else. Reviewed-by: Carl Eugen Hoyos <ceffmpeg@gmail.com> Signed-off-by: James Almer <jamrial@gmail.com>
* avformat/matroska: fix MatroskaVideoFieldOrder enum valuesJames Almer2016-10-12
| | | | | | | | | | | | | | | The spec says 9: Interlaced with bottom field displayed first and top field stored first 14: Interlaced with top field displayed first and bottom field stored first And avcodec.h states AV_FIELD_TB, //< Top coded first, bottom displayed first AV_FIELD_BT, //< Bottom coded first, top displayed first Reviewed-by: Dave Rice <dave@dericed.com> Signed-off-by: James Almer <jamrial@gmail.com>
* Merge commit '41ed7ab45fc693f7d7fc35664c0233f4c32d69bb'Clément Bœsch2016-06-21
|\ | | | | | | | | | | | | * commit '41ed7ab45fc693f7d7fc35664c0233f4c32d69bb': cosmetics: Fix spelling mistakes Merged-by: Clément Bœsch <u@pkh.me>
| * cosmetics: Fix spelling mistakesVittorio Giovara2016-05-04
| | | | | | | | Signed-off-by: Diego Biurrun <diego@biurrun.de>
* | Merge commit '5f0226668124aa7ae4db501ba7f4ace4c770f3d1'Derek Buitenhuis2016-05-08
|\| | | | | | | | | | | | | * commit '5f0226668124aa7ae4db501ba7f4ace4c770f3d1': matroska: Support interlaced content correctly Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
| * matroska: Support interlaced content correctlyLuca Barbato2016-03-31
| | | | | | | | The matroska specification now has two elements for it.
| * matroskadec: export cover art correctlywm42015-04-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Generally, libavformat exports cover art pictures as video streams with 1 packet and AV_DISPOSITION_ATTACHED_PIC set. Only matroskadec exported it as attachment with codec_id set to AV_CODEC_ID_MJPEG. Obviously, this should be consistent, so change the Matroska demuxer to export a AV_DISPOSITION_ATTACHED_PIC pseudo video stream. Matroska muxing is probably incorrect too. I know that it can create broken files with an audio track and just 1 video frame when e.g. remuxing mp3 with APIC to mkv. But for now this commit does not change anything about muxing, and also continues to write attachments with AV_CODEC_ID_MJPEG should the muxer application have special knowledge that the Matroska is broken in this way. Signed-off-by: Anton Khirnov <anton@khirnov.net>
* | lavf/matroskadec: Add early support for some of the new colour elements.Neil Birkbeck2016-03-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adding early support for a subset of the proposed colour elements according to the latest version of spec: https://mailarchive.ietf.org/arch/search/?email_list=cellar&gbt=1&index=hIKLhMdgTMTEwUTeA4ct38h0tmE I've left out elements for pix_fmt related things as there still seems to be some discussion around these, and the max_cll/max_fall are currently not propagated as there is not yet side data for them. The new elements are exposed under strict experimental mode. Signed-off-by: Neil Birkbeck <neil.birkbeck@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | lavf/matroska: ignore ChapCountry ID for nowRodger Combs2015-09-20
| | | | | | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | matroskadec: export cover art correctlywm42015-04-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Generally, libavformat exports cover art pictures as video streams with 1 packet and AV_DISPOSITION_ATTACHED_PIC set. Only matroskadec exported it as attachment with codec_id set to AV_CODEC_ID_MJPEG. Obviously, this should be consistent, so change the Matroska demuxer to export a AV_DISPOSITION_ATTACHED_PIC pseudo video stream. Matroska muxing is probably incorrect too. I know that it can create broken files with an audio track and just 1 video frame when e.g. remuxing mp3 with APIC to mkv. But for now this commit does not change anything about muxing, and also continues to write attachments with AV_CODEC_ID_MJPEG should the muxer application have special knowledge that the Matroska is broken in this way. Fixes trac #4423. Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | avformat: drop redundant MATROSKA_VIDEO_STEREO_MODE_COUNT identifierMichael Niedermayer2014-08-29
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge commit 'd4ae8ac92f619507aadd021bb67b517d39d3a36f'Michael Niedermayer2014-08-28
|\| | | | | | | | | | | | | | | | | | | | | | | | | * commit 'd4ae8ac92f619507aadd021bb67b517d39d3a36f': matroskadec: parse stereo mode on decoding Conflicts: Changelog libavformat/matroska.c libavformat/matroskadec.c See: 4c509fe305bc79a913ef1b690df6c910c732f608 and others Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * matroskadec: parse stereo mode on decodingVittorio Giovara2014-08-28
| | | | | | | | | | | | | | | | | | Convert the Matroska stereo format to the Stereo3D format, and add a Stereo3D side data to the stream. Bump the doctype version supported. Bug-Id: 728 / https://bugs.debian.org/757185
| * matroskadec: read the CodecDelay elementAnton Khirnov2014-04-30
| |
* | Correct few "ffmpeg" typosPaul B Mahol2014-08-24
| | | | | | | | Signed-off-by: Paul B Mahol <onemda@gmail.com>
* | lavf/matroska: Add functions for WebM DASH ManifestVignesh Venkatasubramanian2014-07-15
| | | | | | | | | | | | | | | | Add functions and logic to matroskadec for use by the WebM DASH Manifest XML Muxer. The actual muxer is added in a future patch. Signed-off-by: Vignesh Venkatasubramanian <vigneshv@google.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | matroska: Add the CueDuration elementJames Almer2013-09-21
| | | | | | | | | | | | | | | | | | 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>
* | lavf/matroska: Adding support for Opus CodecDelayVignesh Venkatasubramanian2013-09-10
| | | | | | | | | | | | | | | | | | | | | | | | 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-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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/matroskadec: add WebVTT supportMatthew Heaney2013-08-19
| | | | | | | | | | | | | | | | | | | | | | | | | | WebM files now support inband text tracks, as described in the following specification: http://wiki.webmproject.org/webm-metadata/temporal-metadata/webvtt-in-webm The Matroska demuxer now detects the presence of WebVTT tracks, synthesizing WebVTT packets (having codec id AV_CODEC_ID_WEBVTT) and pushing them downstream in the normal way. Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | lavf/matroska: Adding the new SeekPreRoll elementVignesh Venkatasubramanian2013-08-18
| | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | matroskaenc: implement CueRelativePositionBernie Habermeier2013-07-24
| | | | | | | | | | | | | | | | | | | | 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>
* | WebM muxer writes WebVTT subtitle trackMatthew Heaney2013-07-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Merge commit '564b7e0c0095768cd20001b28154d69462be54e7'Michael Niedermayer2013-05-28
|\| | | | | | | | | | | | | | | | | | | | | * commit '564b7e0c0095768cd20001b28154d69462be54e7': matroskadec: silently skip CodecState element. smacker: fix off-by-one error in palette expanding code Conflicts: libavformat/smacker.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * matroskadec: silently skip CodecState element.Anton Khirnov2013-05-27
| | | | | | | | | | mkvmerge apparrently uses it for mpeg1/2 video, but it contains the same information as CodecPrivate, so it can be ignored.
* | matroskadec: Add support for parsing Matroska ContentEncKeyIDFrank Galligan2013-03-20
| | | | | | | | | | | | | | | | | | This patch adds the enums for the ContentEncryption elements. This patch also adds support for parsing the ContentEncKeyID. The ContentEncKeyID is then base64 encoded and stored in the stream's metadata. Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Adding AlphaMode element to Matroska ParserVignesh Venkatasubramanian2013-02-14
| | | | | | | | | | | | | | | | | | Adding support for parsing AlphaMode element in the Track header and export that information as a metadata tag. This flag indicates presence of alpha channel data in BlockAdditional element. Signed-off-by: Vignesh Venkatasubramanian <vigneshv@google.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Adding support for parsing BlockAdditionalVignesh Venkatasubramanian2013-02-14
| | | | | | | | | | | | | | | | | | | | | | Matroska specification lists support for BlockAdditional element which is not supported by ffmpeg's matroska parser. This patch adds grammar definitions for parsing that element (and few other related elements) and then puts the data in AVPacket.side_data with new AVPacketSideDataType AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL. Signed-off-by: Vignesh Venkatasubramanian <vigneshv@google.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | lavf/mkv: prefix video stereo arrays with ff_.Clément Bœsch2012-09-16
| |
* | Merge commit '36ef5369ee9b336febc2c270f8718cec4476cb85'Michael Niedermayer2012-08-07
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit '36ef5369ee9b336febc2c270f8718cec4476cb85': Replace all CODEC_ID_* with AV_CODEC_ID_* lavc: add AV prefix to codec ids. Conflicts: doc/APIchanges doc/examples/decoding_encoding.c doc/examples/muxing.c ffmpeg.c ffprobe.c ffserver.c libavcodec/8svx.c libavcodec/avcodec.h libavcodec/dnxhd_parser.c libavcodec/dvdsubdec.c libavcodec/error_resilience.c libavcodec/h263dec.c libavcodec/libvorbisenc.c libavcodec/mjpeg_parser.c libavcodec/mjpegenc.c libavcodec/mpeg12.c libavcodec/mpeg4videodec.c libavcodec/mpegvideo.c libavcodec/mpegvideo_enc.c libavcodec/pcm.c libavcodec/r210dec.c libavcodec/utils.c libavcodec/v210dec.c libavcodec/version.h libavdevice/alsa-audio-dec.c libavdevice/bktr.c libavdevice/v4l2.c libavformat/asfdec.c libavformat/asfenc.c libavformat/avformat.h libavformat/avidec.c libavformat/caf.c libavformat/electronicarts.c libavformat/flacdec.c libavformat/flvdec.c libavformat/flvenc.c libavformat/framecrcenc.c libavformat/img2.c libavformat/img2dec.c libavformat/img2enc.c libavformat/ipmovie.c libavformat/isom.c libavformat/matroska.c libavformat/matroskadec.c libavformat/matroskaenc.c libavformat/mov.c libavformat/movenc.c libavformat/mp3dec.c libavformat/mpeg.c libavformat/mpegts.c libavformat/mxf.c libavformat/mxfdec.c libavformat/mxfenc.c libavformat/nsvdec.c libavformat/nut.c libavformat/oggenc.c libavformat/pmpdec.c libavformat/rawdec.c libavformat/rawenc.c libavformat/riff.c libavformat/sdp.c libavformat/utils.c libavformat/vocenc.c libavformat/wtv.c libavformat/xmv.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * Replace all CODEC_ID_* with AV_CODEC_ID_*Anton Khirnov2012-08-07
| |
* | Merge remote-tracking branch 'qatar/master'Michael Niedermayer2012-03-01
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * qatar/master: (58 commits) amrnbdec: check frame size before decoding. cscd: use negative error values to indicate decode_init() failures. h264: prevent overreads in intra PCM decoding. FATE: do not decode audio in the nuv test. dxa: set audio stream time base using the sample rate psx-str: do not allow seeking by bytes asfdec: Do not set AVCodecContext.frame_size vqf: set packet parameters after av_new_packet() mpegaudiodec: use DSPUtil.butterflies_float(). FATE: add mp3 test for sample that exhibited false overreads fate: add cdxl test for bit line plane arrangement vmnc: return error on decode_init() failure. libvorbis: add/update error messages libvorbis: use AVFifoBuffer for output packet buffer libvorbis: remove unneeded e_o_s check libvorbis: check return values for functions that can return errors libvorbis: use float input instead of s16 libvorbis: do not flush libvorbis analysis if dsp state was not initialized libvorbis: use VBR by default, with default quality of 3 libvorbis: fix use of minrate/maxrate AVOptions ... Conflicts: Changelog doc/APIchanges libavcodec/avcodec.h libavcodec/dpxenc.c libavcodec/libvorbis.c libavcodec/vmnc.c libavformat/asfdec.c libavformat/id3v2enc.c libavformat/internal.h libavformat/mp3enc.c libavformat/utils.c libavformat/version.h libswscale/utils.c tests/fate/video.mak tests/ref/fate/nuv tests/ref/fate/prores-alpha tests/ref/lavf/ffm tests/ref/vsynth1/prores tests/ref/vsynth2/prores Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * lavf: move CodecMime from matroska.h to internal.hAnton Khirnov2012-02-29
| | | | | | | | it will be useful for attached pictures in ID3v2
* | Merge remote-tracking branch 'qatar/master' into masterMichael Niedermayer2011-05-29
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * qatar/master: (27 commits) ac3enc: fix LOCAL_ALIGNED usage in count_mantissa_bits() ac3dsp: do not use the ff_* prefix when referencing ff_ac3_bap_bits. ac3dsp: fix loop condition in ac3_update_bap_counts_c() ARM: unbreak build ac3enc: modify mantissa bit counting to keep bap counts for all values of bap instead of just 0 to 4. ac3enc: split mantissa bit counting into a separate function. ac3enc: store per-block/channel bap pointers by reference block in a 2D array rather than in the AC3Block struct. get_bits: add av_unused tag to cache variable sws: replace all long with int. ARM: aacdec: fix constraints on inline asm ARM: remove unnecessary volatile from inline asm ARM: add "cc" clobbers to inline asm where needed ARM: improve FASTDIV asm ac3enc: use LOCAL_ALIGNED macro APIchanges: fill in git hash for av_get_pix_fmt_name (0420bd7). lavu: add av_get_pix_fmt_name() convenience function cmdutils: remove OPT_FUNC2 swscale: fix crash in bilinear scaling. vpxenc: add VP8E_SET_STATIC_THRESHOLD mapping webm: support stereo videos in matroska/webm muxer ... Conflicts: Changelog cmdutils.c cmdutils.h doc/APIchanges doc/muxers.texi ffmpeg.c ffplay.c libavcodec/ac3enc.c libavcodec/ac3enc_float.c libavcodec/avcodec.h libavcodec/get_bits.h libavcodec/libvpxenc.c libavcodec/version.h libavdevice/libdc1394.c libavformat/matroskaenc.c libavutil/avutil.h libswscale/rgb2rgb.c libswscale/swscale.c libswscale/swscale_template.c libswscale/x86/swscale_template.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * webm: support stereo videos in matroska/webm muxerAlok Ahuja2011-05-28
| | | | | | | | | | Create a stereo_mode metadata tag to specify the stereo 3d video layout using the StereoMode tag in a matroska/webm video track.
| * Replace FFmpeg with Libav in licence headersMans Rullgard2011-03-19
| | | | | | | | Signed-off-by: Mans Rullgard <mans@mansr.com>
* | matroska: improve declaration of video_stereo_* constant tablesAurelien Jacobs2011-05-24
| |
* | matroska: cleanup handling of video stereo modeAurelien Jacobs2011-05-24
| |
* | matroska: switch stereo mode from int to string and add support in the ↵Kirill Gavrilov2011-05-21
| | | | | | | | demuxer too
* | matroska: cosmeticsKirill Gavrilov2011-05-21
| |