mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-20 00:31:13 +00:00
videoparse: Fix framesize calculation
When the framesize is not specified, we try and calculate a size from the strides and offset information. This was done with the sum of offsets + the size of the last frame. That is just wrong method. We also need to account for video meta that may be flipping two planes. An example is if you convert I420 to YV12 by flipping the two last offsets. https://bugzilla.gnome.org/show_bug.cgi?id=760270
This commit is contained in:
parent
80c72169c6
commit
acb7205f91
1 changed files with 6 additions and 3 deletions
|
@ -467,10 +467,13 @@ gst_video_parse_update_info (GstVideoParse * vp)
|
|||
if (update_size) {
|
||||
framesize = 0;
|
||||
|
||||
for (i = 0; i < GST_VIDEO_INFO_N_PLANES (info); i++)
|
||||
framesize += info->offset[i];
|
||||
for (i = 0; i < GST_VIDEO_INFO_N_PLANES (info); i++) {
|
||||
gint planesize = info->offset[i];
|
||||
planesize += gst_video_parse_get_plane_size (info, i);
|
||||
|
||||
framesize += gst_video_parse_get_plane_size (info, i - 1);
|
||||
if (planesize > framesize)
|
||||
framesize = planesize;
|
||||
}
|
||||
|
||||
info->size = framesize;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue