On Tue, Nov 15, 2016 at 10:09 PM, James Almer <jamr...@gmail.com> wrote: > On 11/15/2016 1:56 PM, Vittorio Giovara wrote: >> +static int mov_read_st3d(MOVContext *c, AVIOContext *pb, MOVAtom atom) >> +{ >> + AVStream *st; >> + MOVStreamContext *sc; >> + enum AVStereo3DType type; >> + int mode; >> + >> + if (c->fc->nb_streams < 1) >> + return 0; >> + >> + st = c->fc->streams[c->fc->nb_streams - 1]; >> + sc = st->priv_data; >> + >> + if (atom.size < 1) { >> + av_log(c->fc, AV_LOG_ERROR, "Empty stereoscopic video box\n"); >> + return AVERROR_INVALIDDATA; >> + } >> + >> + mode = avio_r8(pb); > > If i'm reading the spec right, st3d is a FullBox so before the data you'll > have the box's version and flags (1 byte and 3 bytes respectively).
Oh I see, so I should check for version == 0 and read three bytes only instead of 4. >> + av_log(c->fc, AV_LOG_ERROR, "Missing projection header box\n"); >> + return 0; >> + } >> + >> + /* 16.16 fixed point */ >> + yaw = avio_rb32(pb); >> + pitch = avio_rb32(pb); >> + roll = avio_rb32(pb); >> + >> + avio_skip(pb, size - 20); >> + >> + size = avio_rb32(pb); >> + if (size > atom.size) >> + return AVERROR_INVALIDDATA; >> + >> + tag = avio_rl32(pb); > > And all the possible cases for this one, except in here it seems to be 4 > bytes for > version and four for flags. > > Does Google offer samples to confirm this? Yep. https://transfer.sh/WOegj/motherboard-cube-v2-metadata.mp4 https://transfer.sh/31Zvg/motherboard-equirect-v1-metadata.mp4 https://transfer.sh/tn1xe/motherboard-equirect-v2-metadata.mp4 Thanks -- Vittorio _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel