1. 13 Oct, 2018 15 commits
    • Nicolas Dufresne's avatar
      WIP: h264parse: Don't push NALs before we have HEADERS · 29df8cb8
      Nicolas Dufresne authored
      Otherwise we may endup pushing incomplete caps.
      
      This patch isn't ready yet, as it will merge PPS/SPS in the same
      GstBuffer. This is valid as per current definition of alignment=nal,
      but is also a behaviour change. It's also weird, since it only merge
      these for the first set.
      29df8cb8
    • Nicolas Dufresne's avatar
      WIP: h265parse: Don't push NALs before we have HEADERS · cd11a069
      Nicolas Dufresne authored
      Otherwise we may endup pushing incomplete caps.
      
      This patch isn't ready yet, as it will merge PPS/SPS/VPS in the same
      GstBuffer. This is valid as per current definition of alignment=nal,
      but is also a behaviour change. It's also weird, since it only merge
      these for the first set.
      cd11a069
    • Nicolas Dufresne's avatar
      h26xparse: Handle the case we already parsed the frame · ffa80239
      Nicolas Dufresne authored
      As we no longer accumulate 2 NALs before producing any data, we may
      endup with the case where we have completly parsed the frame data and
      then get called on handle_frame(). This was triggering the assertion
      current_off < size, as the current offset was equal to the size.
      Handle this just like we'd do in other case, like broken NAL etc.
      ffa80239
    • Nicolas Dufresne's avatar
      mpegtsdemux: Don't pretend doing NAL alignment · 7bcb43cf
      Nicolas Dufresne authored
      Per specification in 2.14.2 "For PES packetization, no specific data
      alignment constraints apply". So we should probably not advertise NAL
      alignment.
      
      Note that more investigation is needed, it's possible that there is a
      minimal parser to try and align and this is is just buggy.
      7bcb43cf
    • Nicolas Dufresne's avatar
      h265parse: Differentiate PREFIX SEI from SUFFIX · 13837f3a
      Nicolas Dufresne authored
      There is some code to fixup broken stream that uses the SEI location,
      this code is meant to locate SUFFIX SEI only. This should prevent
      unwanted side effect if SUFFIX SEI is used.
      13837f3a
    • Nicolas Dufresne's avatar
      h265parse: Add AUD insertion · f2aed343
      Nicolas Dufresne authored
      This add a feature that existed in h264parse already, which is the
      insertion of AUD NAL whenever these are missing. This simplify the
      detection of frame start and also allow producing valid MPEG TS files.
      f2aed343
    • Nicolas Dufresne's avatar
      h265parse: Don't add latency when not needed · a25ba128
      Nicolas Dufresne authored
      We no longer add latency when doing AU->AU, AU->NAL and NAL->NAL
      parsing.
      a25ba128
    • Nicolas Dufresne's avatar
      h265parse: Propagate MARKER flag · cecf09d0
      Nicolas Dufresne authored
      cecf09d0
    • Nicolas Dufresne's avatar
      h265parse: Don't wait for next NAL if input is aligned · 40ad4931
      Nicolas Dufresne authored
      Waiting for the next NAL increases the latency. If alignment=nal/au
      has been negotiated, assumes the the buffer contains a complete
      NAL and don't except a second start-code. This way, nal -> nal,
      au -> au and au -> nal no longer introduce latency.
      
      As a side effect, the collect_pad() function was not able to poke at the
      following NAL. This call is now moved before processing the NAL, so
      it's looking at the current NAL before it's ingested into the parser
      state in order to dermin if the end of an AU has been reached. The AUD
      injection state as been adapted to support this.
      40ad4931
    • Nicolas Dufresne's avatar
      h265parse: Set PTS/DTS and DISCONT on crafted NAL · d3f15f2e
      Nicolas Dufresne authored
      When we inject a NAL in the bitstream before another one, make
      sure to pass both DTS and PTS. Also make sure to transfer the
      DISCONT flag properly.
      d3f15f2e
    • Nicolas Dufresne's avatar
      h264parse: Don't add latency when not needed · 4d478c06
      Nicolas Dufresne authored
      We no longer add latency when doing AU->AU, AU->NAL and NAL->NAL
      parsing.
      4d478c06
    • Nicolas Dufresne's avatar
      h264parse: Propagate MARKER flag · 368af467
      Nicolas Dufresne authored
      368af467
    • Nicolas Dufresne's avatar
      h264parse: Don't wait for next NAL if input is aligned · 21be756e
      Nicolas Dufresne authored
      Waiting for the next NAL increases the latency. If alignment=nal/au
      has been negotiated, assumes the the buffer contains a complete
      NAL and don't except a second start-code. This way, nal -> nal,
      au -> au and au -> nal no longer introduce latency.
      
      As a side effect, the collect_pad() function was not able to poke at the
      following NAL. This call is now moved before processing the NAL, so
      it's looking at the current NAL before it's ingested into the parser
      state in order to dermin if the end of an AU has been reached. The AUD
      injection state as been adapted to support this.
      21be756e
    • Nicolas Dufresne's avatar
      h264parse: Set PTS/DTS and DISCONT on crafted NAL · 4a7d3974
      Nicolas Dufresne authored
      When we inject a NAL in the bitstream before another one, make
      sure to pass both DTS and PTS. Also make sure to transfer the
      DISCONT flag properly.
      4a7d3974
    • Nicolas Dufresne's avatar
      h264parse: Remove no-op assignment · 818d853b
      Nicolas Dufresne authored
      upstream was set to *out_ts, setting *out_ts to upstream here will
      have no effect.
      818d853b
  2. 10 Oct, 2018 8 commits
  3. 08 Oct, 2018 4 commits
  4. 04 Oct, 2018 4 commits
  5. 03 Oct, 2018 1 commit
  6. 01 Oct, 2018 2 commits
  7. 27 Sep, 2018 1 commit
  8. 26 Sep, 2018 1 commit
  9. 24 Sep, 2018 4 commits
    • Sebastian Dröge's avatar
      glmixerbin: "latency" property on aggregator is uint64, not int64 · 47b69bca
      Sebastian Dröge authored
      Also update the property description and range with aggregator's values.
      47b69bca
    • Tim-Philipp Müller's avatar
      96ac822b
    • Tim-Philipp Müller's avatar
      libs: fix API export/import and 'inconsistent linkage' on MSVC · b6411ae7
      Tim-Philipp Müller authored
      For each lib we build export its own API in headers when we're
      building it, otherwise import the API from the headers.
      
      This fixes linker warnings on Windows when building with MSVC.
      
      The problem was that we had defined all GST_*_API decorators
      unconditionally to GST_EXPORT. This was intentional and only
      supposed to be temporary, but caused linker warnings because
      we tell the linker that we want to export all symbols even
      those from externall DLLs, and when the linker notices that
      they were in external DLLS and not present locally it warns.
      
      What we need to do when building each library is: export
      the library's own symbols and import all other symbols. To
      this end we define e.g. BUILDING_GST_FOO and then we define
      the GST_FOO_API decorator either to export or to import
      symbols depending on whether BUILDING_GST_FOO is set or not.
      That way external users of each library API automatically
      get the import.
      
      While we're at it, add new GST_API_EXPORT in config.h and use
      that for GST_*_API decorators instead of GST_EXPORT.
      
      The right export define depends on the toolchain and whether
      we're using -fvisibility=hidden or not, so it's better to set it
      to the right thing directly than hard-coding a compiler whitelist
      in the public header.
      
      We put the export define into config.h instead of passing it via the
      command line to the compiler because it might contain spaces and brackets
      and in the autotools scenario we'd have to pass that through multiple
      layers of plumbing and Makefile/shell escaping and we're just not going
      to be *that* lucky.
      
      The export define is only used if we're compiling our lib, not by external
      users of the lib headers, so it's not a problem to put it into config.h
      
      Also, this means all .c files of libs need to include config.h
      to get the export marker defined, so fix up a few that didn't
      include config.h.
      
      This commit depends on a common submodule commit that makes gst-glib-gen.mak
      add an #include "config.h" to generated enum/marshal .c files for the
      autotools build.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=797185
      b6411ae7
    • Tim-Philipp Müller's avatar
      docs: plugins: update for git master · be3edc6a
      Tim-Philipp Müller authored
      be3edc6a