1. 19 Mar, 2019 1 commit
    • Seungha Yang's avatar
      qtdemux: Don't pass zero to denominator for framerate · 63bb1e3a
      Seungha Yang authored
      Need to respect return of gst_video_guess_framerate() to ensure
      non-zero denominator.
      
      This patch is to fix below error with an abnormal (but has valid frame) file.
      (gst-play-1.0:17940): GStreamer-CRITICAL **: passed '0' as denominator for `GstFraction'
      63bb1e3a
  2. 18 Mar, 2019 2 commits
  3. 17 Mar, 2019 1 commit
  4. 15 Mar, 2019 3 commits
    • Charlie Turner's avatar
      qtdemux: Find mp4a esds atoms in protected streams sample description tables. · 39d32b23
      Charlie Turner authored
      This problem was found in Test. 2 of the YouTube 2018 EME
      tests[1]. The code was accidentally not finding an mp4a's esds atom in
      the sample description table when the stream was encrypted. It assumed
      that if the stream is protected, then only an enca atom will be found
      here. What happens with YouTube is they often provide protected
      content with a few seconds of clear content, and then switch to the
      encrypted stream.
      
      The failure case here was an incorrect codec_data field being sent
      into aacparse. The advertisement of stereo audio @ 44.1kHz for the
      mp4a (unprotected) stream was incorrect. As usual, the esds contained
      the real values here which were mono at 22050 Hz.
      
      Here's what the MP4 tree looks like for these types of files,
      demonstrating why the code was making a wrong assumption (or maybe
      YouTube is being unusual),
      
      [ftyp] size=8+16
      ...
      [moov] size=8+1571
      ...
        [trak] size=8+559
      ...
                [stsd] size=12+234
                  entry-count = 2
                  [enca] size=8+147
                    channel_count = 2
                    sample_size = 16
                    sample_rate = 44100
                    [esds] size=12+27
                      ...
                  ...
                  [mp4a] size=8+67
                    channel_count = 2
                    sample_size = 16
                    sample_rate = 44100
                    [esds] size=12+27
                      ...
      
      In addition to fixing this, the checks for esds atoms in mp4a and mp4v
      have been made symmetrical. While I haven't seen a test case for video
      with the same problem, it seemed better to make the same checks. This
      also fixes a crash reported from another user[2], they also noted the
      asymmetry with mp4v and mp4a.
      
      [1] https://yt-dash-mse-test.commondatastorage.googleapis.com/unit-tests/2018.html?test_type=encryptedmedia-test
      [2] gstreamer/gst-plugins-good#398
      39d32b23
    • Andreas Frisch's avatar
      3160713a
    • Sebastian Dröge's avatar
      rtspsrc: Don't remove udpsrc/sink from rtspsrc if they were not added to it · a676c172
      Sebastian Dröge authored
      This can happen in various error cases that could happen between the
      creation of the element in question and the adding to the rtspsrc.
      
      It causes an ugly critical warning right now but is otherwise harmless.
      a676c172
  5. 14 Mar, 2019 2 commits
  6. 12 Mar, 2019 1 commit
  7. 08 Mar, 2019 2 commits
    • Philipp Zabel's avatar
      v4l2sink: fix pool-less allocation query handling · 8b068fb7
      Philipp Zabel authored
      This fixes a critical warning if the last-sample property is enabled:
      
        (gst-launch-1.0:391): GStreamer-CRITICAL **: 01:12:57.428: gst_object_unref: assertion 'object != NULL' failed
      
      If the allocation query does not contain any allocation pools,
      gst_query_parse_nth_allocation_pool will leave the local pool,
      min, and max variables undefined, so check the array length first.
      If pool is NULL, do not call gst_object_unref.
      8b068fb7
    • Seungha Yang's avatar
      meson: Build v4l2 example only if v4l2 plugin was built · 3f9170bd
      Seungha Yang authored
      Otherwise v4l2 example will be built with MSVC
      3f9170bd
  8. 07 Mar, 2019 5 commits
  9. 06 Mar, 2019 7 commits
  10. 05 Mar, 2019 1 commit
  11. 04 Mar, 2019 1 commit
  12. 01 Mar, 2019 1 commit
  13. 28 Feb, 2019 1 commit
  14. 27 Feb, 2019 1 commit
  15. 26 Feb, 2019 6 commits
  16. 25 Feb, 2019 1 commit
    • Nicolas Dufresne's avatar
      rtpsession: Fix EOS forwarding · e72ef633
      Nicolas Dufresne authored
      So far we assumed that if all sources are bye, this meant we needed to
      send an EOS on the RTCP sink. The problem is that this case may happens
      if we only had one internal source and it detected a collision.
      
      So now we limit the EOS forwarding to when there is a send_rtp_sink pad
      and that this pad has received EOS. We don'tcheck the recv_rtp_sink
      since the code does not wait for the bye to be send before sending EOS
      to the RTCP src pad.
      e72ef633
  17. 24 Feb, 2019 1 commit
  18. 13 Feb, 2019 2 commits
  19. 11 Feb, 2019 1 commit