deinterlace: use separate buffer metadata for fields

Call gst_buffer_make_metadata_writable() on buffers that are
duplicated into fields.  Fixes #627689.
This commit is contained in:
David Schleef 2010-08-22 21:15:07 -07:00
parent 9e981f6c2d
commit 4eee45debb

View file

@ -805,15 +805,15 @@ gst_deinterlace_push_history (GstDeinterlace * self, GstBuffer * buffer)
if (field_layout == GST_DEINTERLACE_LAYOUT_TFF) { if (field_layout == GST_DEINTERLACE_LAYOUT_TFF) {
GST_DEBUG_OBJECT (self, "Top field first"); GST_DEBUG_OBJECT (self, "Top field first");
field1 = gst_buffer_ref (buffer); field1 = gst_buffer_make_metadata_writable (gst_buffer_ref (buffer));
field1_flags = PICTURE_INTERLACED_TOP; field1_flags = PICTURE_INTERLACED_TOP;
field2 = gst_buffer_ref (buffer); field2 = gst_buffer_make_metadata_writable (gst_buffer_ref (buffer));
field2_flags = PICTURE_INTERLACED_BOTTOM; field2_flags = PICTURE_INTERLACED_BOTTOM;
} else { } else {
GST_DEBUG_OBJECT (self, "Bottom field first"); GST_DEBUG_OBJECT (self, "Bottom field first");
field1 = gst_buffer_ref (buffer); field1 = gst_buffer_make_metadata_writable (gst_buffer_ref (buffer));
field1_flags = PICTURE_INTERLACED_BOTTOM; field1_flags = PICTURE_INTERLACED_BOTTOM;
field2 = gst_buffer_ref (buffer); field2 = gst_buffer_make_metadata_writable (gst_buffer_ref (buffer));
field2_flags = PICTURE_INTERLACED_TOP; field2_flags = PICTURE_INTERLACED_TOP;
} }