[FFmpeg-devel] [PATCH 2/4] move the FF_QSCALE_TYPE_* defines to libavutil/internal.h
Andreas Cadhalpun
andreas.cadhalpun at googlemail.com
Mon Aug 31 14:09:40 CEST 2015
Hi Ronald,
On 31.08.2015 00:19, Ronald S. Bultje wrote:
> On Sat, Aug 22, 2015 at 1:57 PM, Andreas Cadhalpun <
> andreas.cadhalpun at googlemail.com> wrote:
>
>> This fixes building with FF_API_QSCALE_TYPE disabled.
>>
>> Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun at googlemail.com>
>> ---
>> libavcodec/version.h | 3 ---
>> libavutil/internal.h | 7 +++++++
>> libavutil/version.h | 3 +++
>> 3 files changed, 10 insertions(+), 3 deletions(-)
>>
>> diff --git a/libavcodec/version.h b/libavcodec/version.h
>> index f0fa7f0..3df2bd7 100644
>> --- a/libavcodec/version.h
>> +++ b/libavcodec/version.h
>> @@ -130,9 +130,6 @@
>> #ifndef FF_API_ERROR_RATE
>> #define FF_API_ERROR_RATE (LIBAVCODEC_VERSION_MAJOR < 57)
>> #endif
>> -#ifndef FF_API_QSCALE_TYPE
>> -#define FF_API_QSCALE_TYPE (LIBAVCODEC_VERSION_MAJOR < 57)
>> -#endif
>> #ifndef FF_API_MB_TYPE
>> #define FF_API_MB_TYPE (LIBAVCODEC_VERSION_MAJOR < 57)
>> #endif
>> diff --git a/libavutil/internal.h b/libavutil/internal.h
>> index 047f742..2f57210 100644
>> --- a/libavutil/internal.h
>> +++ b/libavutil/internal.h
>> @@ -256,6 +256,13 @@ void avpriv_request_sample(void *avc,
>> # define ff_dlog(ctx, ...) do { if (0) av_log(ctx, AV_LOG_DEBUG,
>> __VA_ARGS__); } while (0)
>> #endif
>>
>> +#if !FF_API_QSCALE_TYPE
>> +#define FF_QSCALE_TYPE_MPEG1 0
>> +#define FF_QSCALE_TYPE_MPEG2 1
>> +#define FF_QSCALE_TYPE_H264 2
>> +#define FF_QSCALE_TYPE_VP56 3
>> +#endif
>> +
>> /**
>> * A wrapper for open() setting O_CLOEXEC.
>> */
>> diff --git a/libavutil/version.h b/libavutil/version.h
>> index 64713d3..a666de7 100644
>> --- a/libavutil/version.h
>> +++ b/libavutil/version.h
>> @@ -129,6 +129,9 @@
>> #ifndef FF_API_HMAC
>> #define FF_API_HMAC (LIBAVUTIL_VERSION_MAJOR < 55)
>> #endif
>> +#ifndef FF_API_QSCALE_TYPE
>> +#define FF_API_QSCALE_TYPE (LIBAVUTIL_VERSION_MAJOR < 55)
>> +#endif
>> #ifndef FF_API_CRYPTO_CONTEXT
>> #define FF_API_CRYPTO_CONTEXT (LIBAVUTIL_VERSION_MAJOR < 56)
>> #endif
>> --
>> 2.5.0
>
>
> I don't have any better ideas, don't get me wrong, but I cringe at putting
> codec-specific things in libavutil (even if it's in internal.h). This is
> crazy and we shouldn't want this to ever become a default. I would almost
> just propose delaying qscale bump by one version, although that is just
> kicking the can... Does anyone have good ideas on how to deal with this in
> a way that doesn't take many hours for a stupid fringe feature?
These defines are used in libavcodec and libavfilter.
Since libavfilter only uses them for ff_norm_qscale, we could also move that
to libavcodec and call it avpriv_norm_qscale.
Do you like this idea better?
The larger problem is anyway the qscale part of FF_API_AVFRAME_LAVC, which
we need for av_frame_get_qp_table. I don't see an easy solution for that.
Best regards,
Andreas
More information about the ffmpeg-devel
mailing list