mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-11 19:06:33 +00:00
dvdspu: Handle vobsub packets smaller than 4 bytes
In particular, handle the case of an empty packet with size 0 bytes. Partially fixes: #712643
This commit is contained in:
parent
b58ca88fb9
commit
c336f7642c
1 changed files with 5 additions and 1 deletions
|
@ -950,7 +950,7 @@ gst_dvd_spu_subpic_chain (GstPad * pad, GstObject * parent, GstBuffer * buf)
|
|||
|
||||
switch (dvdspu->spu_input_type) {
|
||||
case SPU_INPUT_TYPE_VOBSUB:
|
||||
if (size > 4) {
|
||||
if (size >= 2) {
|
||||
guint8 header[2];
|
||||
guint16 packet_size;
|
||||
|
||||
|
@ -959,6 +959,10 @@ gst_dvd_spu_subpic_chain (GstPad * pad, GstObject * parent, GstBuffer * buf)
|
|||
if (packet_size == size) {
|
||||
submit_new_spu_packet (dvdspu, dvdspu->partial_spu);
|
||||
dvdspu->partial_spu = NULL;
|
||||
} else if (packet_size == 0) {
|
||||
GST_LOG_OBJECT (dvdspu, "Discarding empty SPU buffer");
|
||||
gst_buffer_unref (dvdspu->partial_spu);
|
||||
dvdspu->partial_spu = NULL;
|
||||
} else if (packet_size < size) {
|
||||
/* Somehow we collected too much - something is wrong. Drop the
|
||||
* packet entirely and wait for a new one */
|
||||
|
|
Loading…
Reference in a new issue