1. 09 Jul, 2013 8 commits
    • Thiago Santos's avatar
      dashdemux: implement queue full check function · 1472dd3d
      Thiago Santos authored
      Checks if the queue is full according to max buffering time
      set by the user
      
      https://bugzilla.gnome.org/show_bug.cgi?id=701404
      1472dd3d
    • Thiago Santos's avatar
      dashdemux: minor refactor · 95c2638b
      Thiago Santos authored
      Split one very large function into 2 smaller but still large functions.
      
      Also change the if conditions to positive checks to improve readability.
      95c2638b
    • Thiago Santos's avatar
      dashdemux: handle live playback resync · 5a5e66ec
      Thiago Santos authored
      During a live stream it is possible for dashdemux to lag behind on a
      slow connection or to rush ahead of the connection os too fast.
      
      For the first case it is necessary to jump some segments ahead to be able to
      continue playback as old segments are usually deleted from the server.
      
      For the later, dashdemux should wait a little before attempting another
      download do give time to the server to produce a new segment
      5a5e66ec
    • Thiago Santos's avatar
      dashdemux: fix template based segment generation · b316d8a6
      Thiago Santos authored
      When using a template based segment list, do not try to
      contruct a finite segment list for the limits of the available periods.
      
      We might not know when the period ends (for live streams) and we can
      always create the segment on demand when requested by dashdemux,
      avoiding use of some memory and cpu when re-creating this list.
      b316d8a6
    • Thiago Santos's avatar
      dashdemux: use more appropriate data structures for parsing · a8a35510
      Thiago Santos authored
      Replaces the 2 likely larger lists with more appropriate structures
      to improve performance.
      
      Replaces S nodes GList for a GQueue, this reduces latency to startup
      because of traversing the list just append an element.
      
      Replaces the processed media segments GList for a GPtrArray as it is
      constantly acessed by index during playback.
      a8a35510
    • Thiago Santos's avatar
      dashdemux: answer to latency queries · b8fc9884
      Thiago Santos authored
      Set live if stream is live and also add to the max latency the
      max internal buffering
      b8fc9884
    • Thiago Santos's avatar
      uridownloader: fix crash when download is null · c62137b8
      Thiago Santos authored
      Do no try to unref a NULL download attribute
      c62137b8
    • Thiago Santos's avatar
      uridownloader: do not set cancelled unless explicitly called by user · 9e313eb0
      Thiago Santos authored
      Cancelled is a 'permanent' state of the uridownloader and is only
      removed by a call to _reset. When a download fails we just want to
      return NULL on the fetch function and leave the downloader ready
      for another fetch, otherwise the user has to call _reset after
      failed downloader, even when it didn't call _cancel.
      9e313eb0
  2. 07 Jul, 2013 3 commits
  3. 06 Jul, 2013 5 commits
    • Edward Hervey's avatar
      mpegtsdemux: Handle private section streams · 1c96c79b
      Edward Hervey authored
      Until now we simply ignored those streams (since we couldn't do anything
      with it anyway). Now that we have the mpegts library and we offload the
      section handling to the application side we can properly identify and
      extract them.
      
      By default it is disabled for tsparse and enabled for tsdemux, but there is
      a property to change that.
      
      This should open the way to properly handle all private section streams,
      including:
      * DSM-CC
      * MHEG
      * Carousel data
      * Metadata streams (though I haven't seen any of those in the wild)
      * ... And all other specs/protocols making use of those
      
      Partially fixes #560631
      1c96c79b
    • Edward Hervey's avatar
      mpegts: Properly handle UTC time in sections · 057d2481
      Edward Hervey authored
      * don't unref inexistant GstDateTime
      * Fine-tune hour/min/sec BCD reading code
      * Update example code accordingly
      057d2481
    • Edward Hervey's avatar
      examples: Registration descriptor support · b4e22617
      Edward Hervey authored
      And output the length of the descriptors
      b4e22617
    • Edward Hervey's avatar
      mpegts: Fix NIT parsing · d95bb488
      Edward Hervey authored
      The size checks were wrong. The smallest size for a NIT is 16 bytes
      (12 for the smallest content + 4 for crc) and the smallest size for
      a inner stream loop is 6 bytes (without any descriptors).
      
      Also remove FIXME that has already moved elsewhere
      d95bb488
    • Edward Hervey's avatar
      mpegtsdemux: Handle registration descriptor for programs and streams · a3b6b1a9
      Edward Hervey authored
      * Allows us to simplify some code and prepare for future cleanups.
      * Remove useless casts
      * Add some FIXME regarding VC1
      a3b6b1a9
  4. 05 Jul, 2013 12 commits
  5. 04 Jul, 2013 5 commits
  6. 03 Jul, 2013 7 commits