[FFmpeg-devel] [PATCH 1/7] ffprobe: Change string_validation to int, its accessed via AVOption as int
Michael Niedermayer
michaelni at gmx.at
Thu Feb 5 23:03:56 CET 2015
On Thu, Feb 05, 2015 at 12:10:12PM +0100, Stefano Sabatini wrote:
> On date Wednesday 2015-02-04 16:10:03 +0100, Michael Niedermayer encoded:
> > On Wed, Feb 04, 2015 at 03:23:59PM +0100, Michael Niedermayer wrote:
> > > On Wed, Feb 04, 2015 at 12:34:53PM +0100, Stefano Sabatini wrote:
> > > > On date Monday 2015-02-02 23:22:09 +0100, Michael Niedermayer encoded:
> > > > > Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
> > > > > ---
> > > > > ffprobe.c | 2 +-
> > > > > 1 file changed, 1 insertion(+), 1 deletion(-)
> > > > >
> > > > > diff --git a/ffprobe.c b/ffprobe.c
> > > > > index d352bb6b..30f9cba 100644
> > > > > --- a/ffprobe.c
> > > > > +++ b/ffprobe.c
> > > > > @@ -338,7 +338,7 @@ struct WriterContext {
> > > > > unsigned int nb_section_frame; ///< number of the frame section in case we are in "packets_and_frames" section
> > > > > unsigned int nb_section_packet_frame; ///< nb_section_packet or nb_section_frame according if is_packets_and_frames
> > > > >
> > > > > - StringValidation string_validation;
> > > > > + int string_validation;
> > > > > char *string_validation_replacement;
> > > > > unsigned int string_validation_utf8_flags;
> > > > > };
> > > >
> > > > What's the problem with the enum and av_opt()?
> > > >
> > > > Enums help with debugging.
> > >
>
> > > the enum might be a different data type than int, it might have
> > > a different sizeof() than sizeof(int), av_opt accessing it could
> > > fail.
>
> Is it a theoretical difference or does it affect some
> platform/compiler? In that case, could be a defect in the
> platform/compiler?
gcc on some embeded platforms seems to use types smaller than int
when it can by default. You can get the same behavior with
-fshort-enums on x86 if you like to try,
gcc on linux x86 will also use int64_t if a enum constant is too
large for 32bit idependant of the short enum flag
>
> From my reading of the C spec, enums and int should be treated in the
> same way by the compiler, but I'm probably wrong.
6.7.2.2 Enumeration specifiers
...
4 Each enumerated type shall be compatible with char, a signed integer type, or an
unsigned integer type. The choice of type is implementation-defined,110) but shall be
capable of representing the values of all the members of the enumeration. The
enumerated type is incomplete until after the } that terminates the list of enumerator
declarations.
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
While the State exists there can be no freedom; when there is freedom there
will be no State. -- Vladimir Lenin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20150205/a76ec6ef/attachment.asc>
More information about the ffmpeg-devel
mailing list