oggstream: Workaround for broken PAR in VP8 BOS
authorPhilippe Normand <philn@igalia.com>
Mon, 13 Jan 2020 09:06:02 +0000 (09:06 +0000)
committerPhilippe Normand <philn@igalia.com>
Mon, 13 Jan 2020 09:09:02 +0000 (09:09 +0000)
Similarily to the Theora mapping, process 0:N, N:0 and 0:0 pixel aspect ratios
as 1:1.

Fixes #719

ext/ogg/gstoggstream.c

index cdb6fa6..3894ae7 100644 (file)
@@ -677,6 +677,11 @@ setup_vp8_mapper (GstOggStream * pad, ogg_packet * packet)
   pad->n_header_packets = 2;
   pad->frame_size = 1;
 
+  /* PAR of 0:N, N:0 and 0:0 is not explicitely allowed, but the best we can do
+   * here is to map to 1:1 so that caps negotiation doesn't break downstream. */
+  if (par_n == 0 || par_d == 0)
+    par_n = par_d = 1;
+
   pad->caps = gst_caps_new_simple ("video/x-vp8",
       "width", G_TYPE_INT, width,
       "height", G_TYPE_INT, height,