On Wed, 20 Nov 2013 11:18:01 +0100, Vittorio Giovara 
<[email protected]> wrote:
> On Thu, Oct 3, 2013 at 9:42 AM, Vittorio Giovara
> <[email protected]> wrote:
> > On Thu, Oct 3, 2013 at 8:54 AM, Anton Khirnov <[email protected]> wrote:
> >>
> >> On Wed, 2 Oct 2013 16:16:58 +0200, Vittorio Giovara 
> >> <[email protected]> wrote:
> >>> On Wed, Oct 2, 2013 at 4:00 PM, Anton Khirnov <[email protected]> wrote:
> >>> >
> >>> > On Wed, 2 Oct 2013 10:21:33 +0400, Kirill Gavrilov 
> >>> > <[email protected]> wrote:
> >>> >> On Wed, Oct 2, 2013 at 9:35 AM, Anton Khirnov <[email protected]> 
> >>> >> wrote:
> >>> >>
> >>> >> > > +
> >>> >> > > +/* How views are packed within the frame or container*/
> >>> >> > > +enum AVStereo3DType {
> >>> >> > > +    /**
> >>> >> > > +     * Video is not stereoscopic
> >>> >> > > +     */
> >>> >> > > +    AV_STEREO3D_NONE,
> >>> >> > > +
> >>> >> > > +    /**
> >>> >> > > +     * Video is not stereoscopic but metadata has to be there
> >>> >> > > +     */
> >>> >> > > +    AV_STEREO3D_NOT_REALLY,
> >>> >> >
> >>> >> > Can't say I like the name. Does this thing even have to exist? Can't 
> >>> >> > we use
> >>> >> > AV_STEREO3D_NONE for this?
> >>> >>
> >>> >> If I understand context correctly, AV_STEREO3D_NONE should be something
> >>> >> like AV_STEREO3D_UNDEFINED/AV_STEREO3D_UNKNOWN (which means that 
> >>> >> file/frame
> >>> >> doesn't contain stereoscopic information at all, but apparently might
> >>> >> contain stereoscopic content in unknown format), and 
> >>> >> AV_STEREO3D_NOT_REALLY
> >>> >> should be just AV_STEREO3D_NONE (which means the file contains 
> >>> >> stereoscopic
> >>> >> tags).
> >>>
> >>> I like the idea.
> >>> I'm tempted to move _ANAGLYPH in that category as well since there is
> >>> no sane way of carrying it over as metadata.
> >>> Actually i'm undecided about moving it in a separate category or not,
> >>> i'm biased towards the not.
> >>>
> >>> >
> >>> > I don't quite see why would we need to explicitly signal that the file 
> >>> > does not
> >>> > contain 3d metadata. We can just not set the frame metadata to the same 
> >>> > effect.
> >>>
> >>> Then it'd be quite difficult to understand when a frame is clean (eg
> >>> no stereo metadata at all),
> >>
> >> no side data present
> >>
> >>> is a 2d frame between 2 s3d frames (eg stereo metadata saying '2d')
> >>
> >> side data saying '2d' is present
> >
> > That's what AV_STEREO3D_NOT_REALLY is for :)
> >
> >>
> >>>or it has s3d data in it (normal metadata).
> >>
> >> side data saying '3d' is present
> >
> > Anything but AV_STEREO3D_NOT_REALLY and AV_STEREO3D_NONE means that.
> >
> > However I can see your point that could be somewhat confusing, I'll
> > re-think something to accommodate more flexibility and future
> > compatibility.
> 
> Since the introduction of the .flags field in avframe I've been
> thinking of further simplify this enum by setting a AV_FRAME_IS_STEREO
> value and keep the AV_STEREO3D_2D.
> 
> Checking whether a frame contains stereo3d side data or not should be
> simpler by checking .flags instead of iterating through the (possibly
> many) other side data. Also I'm willing to slightly simplify the
> struct by removing unnecessary fields (like anaglyph) and add them in
> the future when needed.

No need to iterate over anything, av_frame_get_side_data() allows you to
directly check whether side data of a specified type is present.
And keeping all the 3d-related information in one struct is cleaner imo.

-- 
Anton Khirnov
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to