1. 27 Oct, 2018 1 commit
  2. 24 Oct, 2018 1 commit
  3. 03 Oct, 2018 1 commit
    • Yacine Bandou's avatar
      matroska: Add the WebM encrypted content support in matroskademux · 04328269
      Yacine Bandou authored
      This commit:
      
      1. Reads the WebM and Matroska ContentEncryption subelements.
      
      2. Creates a GST_PROTECTION event for each ContentEncryption, which
         will be sent before pushing the first source buffer.
         The DRM system id field in this event is set to GST_PROTECTION_UNSPECIFIED_SYSTEM_ID,
         because it isn't specified neither by Matroska nor by the WebM spec.
      
      3. Reads the protection information of encrypted Block/SimpleBlock and
         extracts the IV and the partitioning format (subsamples).
      
      4. Creates the metadata protection for each encrypted Block/SimpleBlock,
         with those informations: KeyID (extracted from ContentEncryption element),
         IV and partitioning format.
      
      5. Adds a new caps for WebM encrypted content named "application/x-webm-enc",
         with the following new fields:
      
         "encryption-algorithm": The encryption algorithm used.
                                 values: "None", "DES", "3DES", "Twofish", "Blowfish", "AES".
      
         "encoding-scope": The field that describes which Elements have been modified.
                           Values: "frame", "codec-data", "next-content".
      
         "cipher-mode": The cipher mode used in the encryption.
                        Values: "None", "CTR".
      
      https://bugzilla.gnome.org/show_bug.cgi?id=765275
      04328269
  4. 08 Nov, 2017 1 commit
  5. 22 Nov, 2016 1 commit
  6. 28 Oct, 2015 1 commit
    • Nicola Murino's avatar
      matroskamux: don't drop JPEG frames that only have PTS but no DTS set · 65d08e21
      Nicola Murino authored
      For the MS/VfW codec ids, we want to write DTS timestamps instead
      of PTS because that's what everyone else seems to do (and it's also
      how it is in AVI). So for those input formats we use the buffer DTS
      instead of the PTS. However, if there's no DTS set but only the PTS
      then just take the PTS instead of dropping the input buffer. This
      is useful especially for I-frame only codecs like JPEG and huffyuv,
      but should also be fine as fallback in general.
      
      Fixes regression with input JPEG frames that only have PTS set on them.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=756967
      65d08e21
  7. 11 Jun, 2015 1 commit
    • Jan Schmidt's avatar
      matroska: Implement basic stereoscopic video support · ec5bc9dc
      Jan Schmidt authored
      Implement support for the packed video formats WebM
      uses, not all the values that Matroska might use.
      
      In practice, it's really hard to find any samples in the
      wild of any.
      
      Supported in both the muxer and demuxer.
      ec5bc9dc
  8. 28 Mar, 2015 1 commit
    • Thiago Santos's avatar
      matroska: store stream tags and push as updated · d56b11af
      Thiago Santos authored
      New tags can be found on different parts of the file, so this patch
      keeps the stream taglists around for the life cycle of the pad
      and adds those new tags as found. Then a new tag is found, the
      pad's is marked with a tags changed flag, making the element push
      a new tag event on the next check. Before this, we were sending
      only the newly found tags, as the element was losing its taglist
      when pushing the event.
      d56b11af
  9. 04 Mar, 2015 1 commit
  10. 18 Dec, 2014 1 commit
  11. 06 Feb, 2014 1 commit
  12. 04 Nov, 2012 1 commit
  13. 30 Oct, 2012 1 commit
  14. 26 Nov, 2011 1 commit
  15. 01 Jun, 2010 1 commit
    • Philip Jägenstedt's avatar
      matroskademux: skip buffers before a late keyframe (QoS) · 80926a55
      Philip Jägenstedt authored
      Before, vp8dec had no option but to decode all frames even if some/all
      of them would be late. With this change, performance when keyframes are
      frequent is helped a great deal. On my Thinkpad X60s, decoding a 20 s
      1080p sunflower encode with keyframes every 10 frames went from taking
      42 s with 5 frames shown to 21 s with 15 frames shown (still slow
      enough to count by hand). When keyframes are more sparse, you will
      still be able to catch up eventually, but the results won't be as
      noticable.
      80926a55
  16. 20 May, 2010 1 commit
  17. 19 May, 2010 1 commit
  18. 02 Aug, 2008 1 commit
  19. 18 Jun, 2008 1 commit
    • Sebastian Dröge's avatar
      gst/matroska/matroska-demux.c: Improve debug output everywhere and fix the EOS logic. · 6cf110c1
      Sebastian Dröge authored
      Original commit message from CVS:
      * gst/matroska/matroska-demux.c: (gst_matroska_demux_reset),
      (gst_matroska_demux_stream_from_num),
      (gst_matroska_demux_encoding_cmp),
      (gst_matroska_demux_encoding_order_unique),
      (gst_matroska_demux_read_track_encoding),
      (gst_matroska_demux_read_track_encodings),
      (gst_matroska_demux_tracknumber_unique),
      (gst_matroska_demux_add_stream), (gst_matroska_demux_init_stream),
      (gst_matroska_demux_parse_tracks),
      (gst_matroska_demux_parse_index_cuetrack),
      (gst_matroska_demux_parse_index_pointentry),
      (gst_matroska_demux_parse_index), (gst_matroska_demux_parse_info),
      (gst_matroska_demux_parse_metadata_id_simple_tag),
      (gst_matroska_demux_parse_metadata_id_tag),
      (gst_matroska_demux_parse_metadata),
      (gst_matroska_demux_parse_attached_file),
      (gst_matroska_demux_parse_attachments),
      (gst_matroska_demux_parse_chapters),
      (gst_matroska_demux_sync_streams), (gst_matroska_decode_buffer),
      (gst_matroska_demux_parse_blockgroup_or_simpleblock),
      (gst_matroska_demux_parse_cluster),
      (gst_matroska_demux_parse_contents_seekentry),
      (gst_matroska_demux_parse_contents),
      (gst_matroska_demux_loop_stream_parse_id),
      (gst_matroska_demux_loop):
      Improve debug output everywhere and fix the EOS logic.
      Check the values of the ContentEncoding elements more strictly and
      don't use tracks for which it's invalid.
      Check that the track number is unique for this stream.
      Check that seek positions are below G_MAXINT64 as our seeks are
      int64-based and overflows will fail badly.
      After seeks also don't push SimpleBlocks until the first one
      containing a keyframe is found. Before this was done only for normal
      Blocks.
      Update some FIXME/TODOs.
      * gst/matroska/ebml-read.c: (gst_ebml_read_peek_bytes),
      (gst_ebml_read_utf8), (gst_ebml_read_header):
      Improve debug output.
      * gst/matroska/matroska-ids.c:
      (gst_matroska_track_init_video_context):
      * gst/matroska/matroska-ids.h:
      * gst/matroska/matroska-mux.c:
      (gst_matroska_mux_video_pad_setcaps):
      Remove eye mode and don't parse it anymore. We can't use that
      information in GStreamer yet so it's useless.
      6cf110c1
  20. 16 Jun, 2008 1 commit
    • Sebastian Dröge's avatar
      gst/matroska/: Parse Attachments and post them as GST_TAG_IMAGE if we detect... · 8c6d2c50
      Sebastian Dröge authored
      gst/matroska/: Parse Attachments and post them as GST_TAG_IMAGE if we detect it as image and otherwise as GST_TAG_ATT...
      
      Original commit message from CVS:
      * gst/matroska/Makefile.am:
      * gst/matroska/matroska-demux.c: (gst_matroska_demux_reset),
      (gst_matroska_demux_parse_attached_file),
      (gst_matroska_demux_parse_attachments),
      (gst_matroska_demux_parse_contents_seekentry),
      (gst_matroska_demux_loop_stream_parse_id):
      * gst/matroska/matroska-demux.h:
      * gst/matroska/matroska-ids.c: (gst_matroska_register_tags):
      * gst/matroska/matroska-ids.h:
      * gst/matroska/matroska.c: (plugin_init):
      Parse Attachments and post them as GST_TAG_IMAGE if we detect
      it as image and otherwise as GST_TAG_ATTACHMENT. Include filename
      and description of the attachments in the caps. Fixes bug #537622.
      8c6d2c50
  21. 10 Jun, 2008 1 commit
    • Sebastian Dröge's avatar
      gst/matroska/ebml-write.c: Use GDOUBLE_TO_BE() instead of (probably slower) custom code. · a778b414
      Sebastian Dröge authored
      Original commit message from CVS:
      * gst/matroska/ebml-write.c: (gst_ebml_write_float):
      Use GDOUBLE_TO_BE() instead of (probably slower) custom code.
      * gst/matroska/matroska-demux.c: (gst_matroska_demux_base_init),
      (gst_matroska_demux_class_init), (gst_matroska_demux_init),
      (gst_matroska_track_free), (gst_matroska_demux_encoding_cmp),
      (gst_matroska_demux_read_track_encodings),
      (gst_matroska_demux_add_stream),
      (gst_matroska_demux_handle_src_query),
      (gst_matroska_demux_init_stream),
      (gst_matroska_demux_parse_index_cuetrack),
      (gst_matroska_demux_parse_index_pointentry),
      (gst_matroska_demux_parse_info),
      (gst_matroska_demux_parse_metadata_id_simple_tag),
      (gst_matroska_demux_parse_metadata),
      (gst_matroska_demux_add_wvpk_header), (gst_matroska_decode_buffer),
      (gst_matroska_demux_parse_blockgroup_or_simpleblock),
      (gst_matroska_demux_parse_cluster),
      (gst_matroska_demux_parse_contents_seekentry),
      (gst_matroska_demux_loop_stream_parse_id),
      (gst_matroska_demux_loop), (gst_matroska_demux_video_caps),
      (gst_matroska_demux_audio_caps),
      (gst_matroska_demux_subtitle_caps):
      * gst/matroska/matroska-demux.h:
      * gst/matroska/matroska-ids.c:
      (gst_matroska_track_init_subtitle_context):
      * gst/matroska/matroska-ids.h:
      * gst/matroska/matroska-mux.c: (gst_matroska_mux_base_init),
      (gst_matroska_mux_class_init), (gst_matroska_mux_init),
      (gst_matroska_mux_create_uid), (gst_matroska_mux_reset),
      (gst_matroska_mux_video_pad_setcaps),
      (gst_matroska_mux_audio_pad_setcaps),
      (gst_matroska_mux_subtitle_pad_setcaps),
      (gst_matroska_mux_request_new_pad),
      (gst_matroska_mux_track_header), (gst_matroska_mux_start),
      (gst_matroska_mux_write_simple_tag), (gst_matroska_mux_finish),
      (gst_matroska_mux_write_data), (gst_matroska_mux_collected),
      (gst_matroska_mux_set_property):
      Add many FIXMEs/TODOs all over the matroska muxer and demuxer
      elements, do some checks for valid values in the demuxer, handle
      tracktimecodescale in the demuxer, set correct default values for all
      settings in the demuxer, review and add all missing matroska
      IDs and some more raw YUV formats, and some trivial cleanup.
      a778b414
  22. 11 Dec, 2006 1 commit
    • Tim-Philipp Müller's avatar
      gst/matroska/: Try harder to extract the framerate for video tracks correctly... · 0d3b0236
      Tim-Philipp Müller authored
      gst/matroska/: Try harder to extract the framerate for video tracks correctly and save it directly instead of convert...
      
      Original commit message from CVS:
      * gst/matroska/matroska-demux.c: (gst_matroska_demux_add_stream),
      (gst_matroska_demux_video_caps):
      * gst/matroska/matroska-ids.c:
      (gst_matroska_track_init_video_context):
      * gst/matroska/matroska-ids.h:
      Try harder to extract the framerate for video tracks correctly and
      save it directly instead of converting it back and forth a few
      times. Mostly makes a difference for very small framerates (<1).
      Fixes #380199.
      0d3b0236
  23. 22 Jun, 2006 1 commit
    • Tim-Philipp Müller's avatar
      gst/matroska/: Try to fix up broken matroska files containing subtitle streams... · 45c10ca9
      Tim-Philipp Müller authored
      gst/matroska/: Try to fix up broken matroska files containing subtitle streams with non-UTF8 character encodings (cou...
      
      Original commit message from CVS:
      * gst/matroska/matroska-demux.c:
      (gst_matroska_demux_check_subtitle_buffer),
      (gst_matroska_demux_parse_blockgroup_or_simpleblock),
      (gst_matroska_demux_subtitle_caps):
      * gst/matroska/matroska-ids.c:
      (gst_matroska_track_init_subtitle_context):
      * gst/matroska/matroska-ids.h:
      Try to fix up broken matroska files containing subtitle
      streams with non-UTF8 character encodings (courtesy of
      mkvmerge) using either the encoding specified in the
      GST_SUBTITLE_ENCODING environment variable or the
      current locale's character set if it is non-UTF8.
      Fixes #337076.
      45c10ca9
  24. 25 Apr, 2006 1 commit
    • Tim-Philipp Müller's avatar
      gst/matroska/: Handle case where the TrackType ebml chunk does not come before the · da34723a
      Tim-Philipp Müller authored
      Original commit message from CVS:
      * gst/matroska/Makefile.am:
      * gst/matroska/matroska-demux.c: (gst_matroska_demux_add_stream),
      (gst_matroska_demux_handle_src_event):
      * gst/matroska/matroska-ids.c:
      (gst_matroska_track_init_video_context),
      (gst_matroska_track_init_audio_context),
      (gst_matroska_track_init_subtitle_context),
      (gst_matroska_track_init_complex_context):
      * gst/matroska/matroska-ids.h:
      Handle case where the TrackType ebml chunk does not come before the
      TrackInfoAudio or TrackInfoVideo ebml chunk (#339446). Ignore QoS
      events.
      da34723a