summaryrefslogtreecommitdiff
path: root/gst
diff options
context:
space:
mode:
authorAurélien Zanelli <aurelien.zanelli@parrot.com>2014-09-16 17:38:53 +0200
committerSebastian Dröge <sebastian@centricular.com>2014-09-17 11:37:44 +0300
commitde141c323737ca4bb3a28ce44e06a00d81966486 (patch)
tree8ae30ed5bb60688ef5ec7e24f806d67320b0cf53 /gst
parentfaba47f70dbf9d7754d61aae85d923b1f56425aa (diff)
downloadgstreamer-plugins-bad-de141c323737ca4bb3a28ce44e06a00d81966486.tar.gz
vc1parse: forge sequence-layer from seq_hdr instead of seq_layer
If we don't have a seq_layer_buffer, we also don't have a valid seq_layer because there are set together in gst_vc1_parse_handle_seq_layer(). So when output header format is sequence-layer and when we don't have a seq_layer_buffer, we forge one from seq_hdr. https://bugzilla.gnome.org/show_bug.cgi?id=736781
Diffstat (limited to 'gst')
-rw-r--r--gst/videoparsers/gstvc1parse.c31
1 files changed, 16 insertions, 15 deletions
diff --git a/gst/videoparsers/gstvc1parse.c b/gst/videoparsers/gstvc1parse.c
index 842428019..4637dfa93 100644
--- a/gst/videoparsers/gstvc1parse.c
+++ b/gst/videoparsers/gstvc1parse.c
@@ -783,25 +783,26 @@ gst_vc1_parse_update_caps (GstVC1Parse * vc1parse)
/* structC */
structC |= (vc1parse->profile << 30);
if (vc1parse->profile != GST_VC1_PROFILE_ADVANCED) {
- structC |= (vc1parse->seq_layer.struct_c.wmvp << 28);
- structC |= (vc1parse->seq_layer.struct_c.frmrtq_postproc << 25);
- structC |= (vc1parse->seq_layer.struct_c.bitrtq_postproc << 20);
- structC |= (vc1parse->seq_layer.struct_c.loop_filter << 19);
+ /* Build simple/main structC from sequence header */
+ structC |= (vc1parse->seq_hdr.struct_c.wmvp << 28);
+ structC |= (vc1parse->seq_hdr.struct_c.frmrtq_postproc << 25);
+ structC |= (vc1parse->seq_hdr.struct_c.bitrtq_postproc << 20);
+ structC |= (vc1parse->seq_hdr.struct_c.loop_filter << 19);
/* Reserved3 shall be set to zero */
- structC |= (vc1parse->seq_layer.struct_c.multires << 17);
+ structC |= (vc1parse->seq_hdr.struct_c.multires << 17);
/* Reserved4 shall be set to one */
structC |= (1 << 16);
- structC |= (vc1parse->seq_layer.struct_c.fastuvmc << 15);
- structC |= (vc1parse->seq_layer.struct_c.extended_mv << 14);
- structC |= (vc1parse->seq_layer.struct_c.dquant << 12);
- structC |= (vc1parse->seq_layer.struct_c.vstransform << 11);
+ structC |= (vc1parse->seq_hdr.struct_c.fastuvmc << 15);
+ structC |= (vc1parse->seq_hdr.struct_c.extended_mv << 14);
+ structC |= (vc1parse->seq_hdr.struct_c.dquant << 12);
+ structC |= (vc1parse->seq_hdr.struct_c.vstransform << 11);
/* Reserved5 shall be set to zero */
- structC |= (vc1parse->seq_layer.struct_c.overlap << 9);
- structC |= (vc1parse->seq_layer.struct_c.syncmarker << 8);
- structC |= (vc1parse->seq_layer.struct_c.rangered << 7);
- structC |= (vc1parse->seq_layer.struct_c.maxbframes << 4);
- structC |= (vc1parse->seq_layer.struct_c.quantizer << 2);
- structC |= (vc1parse->seq_layer.struct_c.finterpflag << 1);
+ structC |= (vc1parse->seq_hdr.struct_c.overlap << 9);
+ structC |= (vc1parse->seq_hdr.struct_c.syncmarker << 8);
+ structC |= (vc1parse->seq_hdr.struct_c.rangered << 7);
+ structC |= (vc1parse->seq_hdr.struct_c.maxbframes << 4);
+ structC |= (vc1parse->seq_hdr.struct_c.quantizer << 2);
+ structC |= (vc1parse->seq_hdr.struct_c.finterpflag << 1);
/* Reserved6 shall be set to one */
structC |= 1;
}