1. 19 Feb, 2015 1 commit
  2. 02 Jan, 2015 1 commit
    • Martin Storsjö's avatar
      movenc: Add an option for delaying writing the moov with empty_moov · 847bf598
      Martin Storsjö authored
      
      
      This delays writing the moov until the first fragment is written,
      or can be flushed by the caller explicitly when wanted. If the first
      sample in all streams is available at this point, we can write
      a proper editlist at this point, allowing streams to start at
      something else than dts=0. For AC3 and DNXHD, a packet is
      needed in order to write the moov header properly.
      
      This isn't added to the normal behaviour for empty_moov, since
      the behaviour that ftyp+moov is written during avformat_write_header
      would be changed. Callers that split the output stream into header+segments
      (either by flushing manually, with the custom_frag flag set, or by
      just differentiating between data written during avformat_write_header
      and the rest) will need to be adjusted to take this option into use.
      
      For handling streams that start at something else than dts=0, an
      alternative would be to use different kinds of heuristics for
      guessing the start dts (using AVCodecContext delay or has_b_frames
      together with the frame rate), but this is not reliable and doesn't
      necessarily work well with stream copy, and wouldn't work for getting
      the right initialization data for AC3 or DNXHD either.
      Signed-off-by: default avatarMartin Storsjö <martin@martin.st>
      847bf598
  3. 18 Dec, 2014 3 commits
    • James Almer's avatar
      430a8168
    • Martin Storsjö's avatar
      libavformat: Add a muxer wrapping mpegts encoding into RTP · 8a70ef94
      Martin Storsjö authored
      
      
      Since this structurally is quite different from normal RTP
      (multiple streams are muxed into one single mpegts stream,
      which is packetized into one single RTP session), it is kept
      as a separate muxer.
      
      Since this structurally also behaves differently than normal
      RTP, all of the other muxers that do chained RTP muxing
      (rtsp, sap, mp4) would need to be updated similarly to handle
      this - in particular, creating one single rtp_mpegts muxer
      for the whole presentation instead of one rtp muxer per stream.
      Signed-off-by: default avatarMartin Storsjö <martin@martin.st>
      8a70ef94
    • Thomas Volkert's avatar
      rtp: Initial H.261 support · a505c0d7
      Thomas Volkert authored
      
      
      The packetizer only supports splitting at GOB headers - if
      such aren't available frequently enough, it splits at any
      random byte offset (not at a macroblock boundary either, which
      would be allowed by the spec) and sends a payload header pretend
      that it starts with a GOB header.
      
      As long as a receiver doesn't try to handle such cases cleverly
      but just drops broken frames, this shouldn't matter too much
      in practice.
      Signed-off-by: default avatarMartin Storsjö <martin@martin.st>
      a505c0d7
  4. 08 Dec, 2014 1 commit
    • Vittorio Giovara's avatar
      mov: parse XMP metadata on demand · b704b648
      Vittorio Giovara authored
      The Extensible Metadata Platform tag can contain various kind of data
      which are not strictly related to the video file, such as history of edits
      and saves from the project file. So display XMP metadata only when the
      user explicitly requires it.
      
      Based on a patch by Marek Fort <marek.fort@chyronhego.com>.
      b704b648
  5. 02 Dec, 2014 1 commit
  6. 17 Nov, 2014 2 commits
    • Martin Storsjö's avatar
      lavf: Add an MPEG-DASH ISOFF segmenting muxer · fe5e6e34
      Martin Storsjö authored
      
      
      This is mostly to serve as a reference example on how to segment
      the output from the mp4 muxer, capable of writing the segment
      list in four different ways:
      - SegmentTemplate with SegmentTimeline
      - SegmentTemplate with implicit segments
      - SegmentList with individual files
      - SegmentList with one single file per track, and byte ranges
      
      The muxer is able to serve live content (with optional windowing)
      or create a static segmented MPD.
      
      In advanced cases, users will probably want to do the segmenting
      in their own application code.
      Signed-off-by: default avatarMartin Storsjö <martin@martin.st>
      fe5e6e34
    • Martin Storsjö's avatar
      movenc: Add support for writing sidx atoms for DASH segments · 2ded5737
      Martin Storsjö authored
      
      
      A flag "dash" is added, which enables the necessary flags for
      creating DASH compatible fragments.
      
      When this is enabled, one sidx atom is written for each track
      before every moof atom.
      Signed-off-by: default avatarMartin Storsjö <martin@martin.st>
      2ded5737
  7. 07 Nov, 2014 2 commits
  8. 29 Oct, 2014 1 commit
  9. 17 Oct, 2014 1 commit
  10. 08 Oct, 2014 1 commit
  11. 03 Oct, 2014 1 commit
    • Joakim Roubert's avatar
      hlsenc: Add parameter -hls_allow_cache · 55f03d87
      Joakim Roubert authored
      
      
      The -hls_allow_cache parameter enables explicitly setting the
      EXT-X-ALLOW-CACHE tag in the manifest file. That tag indicates
      whether the client MAY or MUST NOT cache downloaded media
      segments for later replay.
      
      Valid values are 1 (=YES) or 0 (=NO) and the EXT-X-ALLOW-CACHE
      will not show in the manifest for other values (or if
      -hls_allow_cache is not used.
      Signed-off-by: default avatarMartin Storsjö <martin@martin.st>
      55f03d87
  12. 24 Sep, 2014 1 commit
  13. 03 Sep, 2014 1 commit
  14. 25 Aug, 2014 1 commit
  15. 22 Aug, 2014 1 commit
  16. 13 Aug, 2014 1 commit
  17. 09 Aug, 2014 4 commits
  18. 04 Aug, 2014 1 commit
  19. 29 Jul, 2014 1 commit
  20. 18 Jun, 2014 1 commit
    • Anton Khirnov's avatar
      lavf: switch to AVStream.time_base as the hint for the muxer timebase · 194be1f4
      Anton Khirnov authored
      Previously, AVStream.codec.time_base was used for that purpose, which
      was quite confusing for the callers. This change also opens the path for
      removing AVStream.codec.
      
      The change in the lavf-mkv test is due to the native timebase (1/1000)
      being used instead of the default one (1/90000), so the packets are now
      sent to the crc muxer in the same order in which they are demuxed
      (previously some of them got reordered because of inexact timestamp
      conversion).
      194be1f4
  21. 04 Jun, 2014 1 commit
  22. 28 May, 2014 1 commit
  23. 19 May, 2014 2 commits
  24. 15 May, 2014 1 commit
    • Anton Khirnov's avatar
      lavf: add AVFMT_FLAG_BITEXACT. · 0c1959b0
      Anton Khirnov authored
      Use it instead of checking CODEC_FLAG_BITEXACT in the first stream's
      codec context.
      
      Using codec options inside lavf is fragile and can easily break when the
      muxing codec context is not the encoding context.
      0c1959b0
  25. 19 Apr, 2014 1 commit
  26. 06 Apr, 2014 1 commit
  27. 27 Mar, 2014 1 commit
  28. 24 Mar, 2014 1 commit
  29. 09 Feb, 2014 1 commit
  30. 04 Feb, 2014 1 commit
    • Luca Barbato's avatar
      lavf: improve handling of sparse streams when muxing · d9ae1031
      Luca Barbato authored
      
      
      Currently ff_interleave_packet_per_dts() waits until it gets a frame for
      each stream before outputting packets in interleaved order.
      
      Sparse streams (i.e. streams with much fewer packets than the other
      streams, like subtitles or audio with DTX) tend to add up latency and in
      specific cases end up allocating a large amount of memory.
      
      Emit the top packet from the packet_buffer if it has a time delta
      larger than a specified threshold.
      
      Original report of the issue and initial proposed solution by
      mus.svz@gmail.com.
      
      Bug-id: 31
      Signed-off-by: default avatarAnton Khirnov <anton@khirnov.net>
      d9ae1031
  31. 17 Jan, 2014 1 commit
  32. 09 Jan, 2014 1 commit