diff options
author | Vittorio Giovara <vittorio.giovara@gmail.com> | 2017-03-07 17:34:32 -0500 |
---|---|---|
committer | Vittorio Giovara <vittorio.giovara@gmail.com> | 2017-03-07 17:34:32 -0500 |
commit | 9ae3506696badc226a4e73a35009de17aeee14ce (patch) | |
tree | 1f811b5d4eddeb9f05ae8ccbd72281cfa7462eaa /libavformat/matroskadec.c | |
parent | ac8c72f8f1f758ae7606db42eac83d04418aec48 (diff) | |
download | ffmpeg-9ae3506696badc226a4e73a35009de17aeee14ce.tar.gz |
matroskadec: cosmetics: Rearrange checks for projection-depedendent properties
Diffstat (limited to 'libavformat/matroskadec.c')
-rw-r--r-- | libavformat/matroskadec.c | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c index fdc3f268aa..fdb23ab05e 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"); |