qtmux: Allow for CDP packets up to 320 bytes
authorSebastian Dröge <sebastian@centricular.com>
Wed, 1 Aug 2018 13:50:03 +0000 (16:50 +0300)
committerSebastian Dröge <sebastian@centricular.com>
Wed, 1 Aug 2018 13:51:11 +0000 (16:51 +0300)
Apparently they can be bigger than 256 bytes sometimes.

gst/isomp4/gstqtmux.c

index 9bf645a..4867f90 100644 (file)
@@ -996,11 +996,11 @@ gst_qt_mux_prepare_caption_buffer (GstQTPad * qtpad, GstBuffer * buf,
     case FOURCC_c708:
     {
       /* Take the whole CDP */
-      if (in_prefill && size > 256) {
+      if (in_prefill && size > 320) {
         GST_ERROR_OBJECT (qtmux, "Input C708 CDP too big for prefill mode !");
         break;
       }
-      newbuf = gst_buffer_new_and_alloc (in_prefill ? 256 + 8 : size + 8);
+      newbuf = gst_buffer_new_and_alloc (in_prefill ? 320 + 8 : size + 8);
 
       /* Let's copy over all metadata and not the memory */
       gst_buffer_copy_into (newbuf, buf, GST_BUFFER_COPY_METADATA, 0, size);
@@ -2500,8 +2500,8 @@ prefill_get_sample_size (GstQTMux * qtmux, GstQTPad * qpad)
       /* We always write both cdat and cdt2 atom in prefill mode */
       return 20;
     case FOURCC_c708:
-      /* We're cheating a bit by always allocating 100bytes even if we use less  */
-      return 100;
+      /* We're cheating a bit by always allocating 320 bytes even if we use less  */
+      return 320;
     case FOURCC_sowt:
     case FOURCC_twos:{
       guint64 block_idx;