[FFmpeg-cvslog] matroskadec: cosmetics: Rearrange checks for projection-depedendent properties

Vittorio Giovara git at videolan.org
Wed Mar 8 01:09:33 EET 2017


ffmpeg | branch: master | Vittorio Giovara <vittorio.giovara at gmail.com> | Tue Mar  7 17:34:32 2017 -0500| [9ae3506696badc226a4e73a35009de17aeee14ce] | committer: Vittorio Giovara

matroskadec: cosmetics: Rearrange checks for projection-depedendent properties

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=9ae3506696badc226a4e73a35009de17aeee14ce
---

 libavformat/matroskadec.c | 21 +++++++++------------
 1 file changed, 9 insertions(+), 12 deletions(-)

diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
index fdc3f26..fdb23ab 100644
--- a/libavformat/matroskadec.c
+++ b/libavformat/matroskadec.c
@@ -1930,9 +1930,7 @@ static int mkv_parse_video_projection(AVStream *st, const MatroskaTrack *track)
 
     switch (track->video.projection.type) {
     case MATROSKA_VIDEO_PROJECTION_TYPE_EQUIRECTANGULAR:
-        if (track->video.projection.private.size == 0)
-            projection = AV_SPHERICAL_EQUIRECTANGULAR;
-        else if (track->video.projection.private.size == 20) {
+        if (track->video.projection.private.size == 20) {
             t = bytestream2_get_be32(&gb);
             b = bytestream2_get_be32(&gb);
             l = bytestream2_get_be32(&gb);
@@ -1946,15 +1944,15 @@ static int mkv_parse_video_projection(AVStream *st, const MatroskaTrack *track)
                        l, t, r, b);
                 return AVERROR_INVALIDDATA;
             }
-
-            if (l || t || r || b)
-                projection = AV_SPHERICAL_EQUIRECTANGULAR_TILE;
-            else
-                projection = AV_SPHERICAL_EQUIRECTANGULAR;
-        } else {
+        } else if (track->video.projection.private.size != 0) {
             av_log(NULL, AV_LOG_ERROR, "Unknown spherical metadata\n");
             return AVERROR_INVALIDDATA;
         }
+
+        if (l || t || r || b)
+            projection = AV_SPHERICAL_EQUIRECTANGULAR_TILE;
+        else
+            projection = AV_SPHERICAL_EQUIRECTANGULAR;
         break;
     case MATROSKA_VIDEO_PROJECTION_TYPE_CUBEMAP:
         if (track->video.projection.private.size < 4) {
@@ -1962,13 +1960,12 @@ static int mkv_parse_video_projection(AVStream *st, const MatroskaTrack *track)
             return AVERROR_INVALIDDATA;
         } else if (track->video.projection.private.size == 12) {
             uint32_t layout = bytestream2_get_be32(&gb);
-            if (layout == 0) {
-                projection = AV_SPHERICAL_CUBEMAP;
-            } else {
+            if (layout) {
                 av_log(NULL, AV_LOG_WARNING,
                        "Unknown spherical cubemap layout %"PRIu32"\n", layout);
                 return 0;
             }
+            projection = AV_SPHERICAL_CUBEMAP;
             padding = bytestream2_get_be32(&gb);
         } else {
             av_log(NULL, AV_LOG_ERROR, "Unknown spherical metadata\n");



More information about the ffmpeg-cvslog mailing list