[FFmpeg-devel] [PATCH] Add frame side data when SEI green metadata are detected

Michael Niedermayer michael at niedermayer.cc
Tue Jan 5 21:36:29 CET 2016


On Tue, Jan 05, 2016 at 10:19:28AM +0000, Nicolas Derouineau wrote:
> >this should be in a seperate patch and libavutil/version.h should have
> >its minor version bumped
> 
> Ok, so I'm going to do two separate patch (commit ?) for libavformat and for libavutil.

yes, please do


> Where should I bump libavutil/version.h ? (I'm not sure I really understand this action).

when a new feature is added to a lib, its version should be increased
so that any application can use the version to check if the feature
is available
the middle number is theoreticaly the correct one to increase for
feature additions



> 
> >GreenMetaData is defined in h264.h, which is an internal header
> >while AVFrameSideDataType is external. public API should not refer to
> >internal/private headers
> 
> Ok
> 

> >also the struct, as currently defined is platform specific. Theres no
> >gurantee that a compiler doesnt add padding betwen the elements. 
> 
> I'm not sure how to deal with this issue in ffmpeg. I guess #pragma packed is not an option, right ?

no, #pragma packed, cant be used


> 
> >Also the code initializing it only matches the platform dependant struct
> >on little endian
> 
> Can you explain to me which part of the code is platform dependant on little endian ? (because memset seems allright to me, but I guess I'm wrong).

IIRC C allows fields to have arbitrary padding
this does not happen on actual systems so its hypothetical but we
should not knowingly write code that depends on assumtations that
are outside the standards unless thats somehow hard/ugly to avoid

it should be quite easy to just treat the stored side data as
a array of bytes with defined meaning for each (preferrably with
some tought about future extensibilty)

that can then be read7written into the struct 1 element at a time

as in mystruct.this = AV_RB16(myarray+123)

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Awnsering whenever a program halts or runs forever is
On a turing machine, in general impossible (turings halting problem).
On any real computer, always possible as a real computer has a finite number
of states N, and will either halt in less than N cycles or never halt.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20160105/38e7fac9/attachment.sig>


More information about the ffmpeg-devel mailing list