qtdemux: Ignore non-zero values for UV/XY in transformation matrix
But write an info message about that. The values have been ignored before !8127 as well. Fixes #4252 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8559>
This commit is contained in:
parent
8ab2844443
commit
71d8618daf
@ -11559,7 +11559,7 @@ qtdemux_parse_transformation_matrix (GstQTDemux * qtdemux,
|
|||||||
|
|
||||||
/* Check if all matrix elements are either 0, 1 or -1 */
|
/* Check if all matrix elements are either 0, 1 or -1 */
|
||||||
static gboolean
|
static gboolean
|
||||||
qtdemux_transformation_matrix_is_simple (guint32 * m)
|
qtdemux_transformation_matrix_is_simple (GstQTDemux * qtdemux, guint32 * m)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
@ -11567,6 +11567,16 @@ qtdemux_transformation_matrix_is_simple (guint32 * m)
|
|||||||
switch (i) {
|
switch (i) {
|
||||||
case 2:
|
case 2:
|
||||||
case 5:
|
case 5:
|
||||||
|
/* 2.30 */
|
||||||
|
if (m[i] != 0U)
|
||||||
|
GST_INFO_OBJECT (qtdemux, "Matrix non-zero UV values ignored");
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
case 7:
|
||||||
|
/* 16.16 */
|
||||||
|
if (m[i] != 0U)
|
||||||
|
GST_INFO_OBJECT (qtdemux, "Matrix non-zero XY values ignored");
|
||||||
|
break;
|
||||||
case 8:
|
case 8:
|
||||||
/* 2.30 */
|
/* 2.30 */
|
||||||
if (m[i] != 0U && m[i] != (1U << 30) && m[i] != (3U << 30))
|
if (m[i] != 0U && m[i] != (1U << 30) && m[i] != (3U << 30))
|
||||||
@ -11592,8 +11602,8 @@ qtdemux_mul_transformation_matrix (GstQTDemux * qtdemux,
|
|||||||
#define QTADD_MATRIX(_a,_b) ((_a) + (_b) > 0 ? (1U << 16) : \
|
#define QTADD_MATRIX(_a,_b) ((_a) + (_b) > 0 ? (1U << 16) : \
|
||||||
((_a) + (_b) < 0) ? (G_MAXUINT16 << 16) : 0u)
|
((_a) + (_b) < 0) ? (G_MAXUINT16 << 16) : 0u)
|
||||||
|
|
||||||
if (!qtdemux_transformation_matrix_is_simple (a) ||
|
if (!qtdemux_transformation_matrix_is_simple (qtdemux, a) ||
|
||||||
!qtdemux_transformation_matrix_is_simple (b)) {
|
!qtdemux_transformation_matrix_is_simple (qtdemux, b)) {
|
||||||
GST_WARNING_OBJECT (qtdemux,
|
GST_WARNING_OBJECT (qtdemux,
|
||||||
"Cannot handle transform matrix with element values other than 0, 1 or -1");
|
"Cannot handle transform matrix with element values other than 0, 1 or -1");
|
||||||
/* Pretend to have an identity matrix in this case */
|
/* Pretend to have an identity matrix in this case */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user