You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-08-10 06:10:52 +02:00
avcodec/utils: Move ff_int_from_list_or_default() to its only user
Namely proresenc_anatoliy.c. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
This commit is contained in:
@@ -207,16 +207,4 @@ int ff_alloc_timecode_sei(const AVFrame *frame, AVRational rate, size_t prefix_l
|
|||||||
*/
|
*/
|
||||||
int64_t ff_guess_coded_bitrate(AVCodecContext *avctx);
|
int64_t ff_guess_coded_bitrate(AVCodecContext *avctx);
|
||||||
|
|
||||||
/**
|
|
||||||
* Check if a value is in the list. If not, return the default value
|
|
||||||
*
|
|
||||||
* @param ctx Context for the log msg
|
|
||||||
* @param val_name Name of the checked value, for log msg
|
|
||||||
* @param array_valid_values Array of valid int, ended with INT_MAX
|
|
||||||
* @param default_value Value return if checked value is not in the array
|
|
||||||
* @return Value or default_value.
|
|
||||||
*/
|
|
||||||
int ff_int_from_list_or_default(void *ctx, const char * val_name, int val,
|
|
||||||
const int * array_valid_values, int default_value);
|
|
||||||
|
|
||||||
#endif /* AVCODEC_INTERNAL_H */
|
#endif /* AVCODEC_INTERNAL_H */
|
||||||
|
@@ -32,7 +32,6 @@
|
|||||||
#include "avcodec.h"
|
#include "avcodec.h"
|
||||||
#include "codec_internal.h"
|
#include "codec_internal.h"
|
||||||
#include "encode.h"
|
#include "encode.h"
|
||||||
#include "internal.h"
|
|
||||||
#include "profiles.h"
|
#include "profiles.h"
|
||||||
#include "proresdata.h"
|
#include "proresdata.h"
|
||||||
#include "put_bits.h"
|
#include "put_bits.h"
|
||||||
@@ -198,6 +197,35 @@ typedef struct {
|
|||||||
char *vendor;
|
char *vendor;
|
||||||
} ProresContext;
|
} ProresContext;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if a value is in the list. If not, return the default value
|
||||||
|
*
|
||||||
|
* @param ctx Context for the log msg
|
||||||
|
* @param val_name Name of the checked value, for log msg
|
||||||
|
* @param array_valid_values Array of valid int, ended with INT_MAX
|
||||||
|
* @param default_value Value return if checked value is not in the array
|
||||||
|
* @return Value or default_value.
|
||||||
|
*/
|
||||||
|
static int int_from_list_or_default(void *ctx, const char *val_name, int val,
|
||||||
|
const int *array_valid_values, int default_value)
|
||||||
|
{
|
||||||
|
int i = 0;
|
||||||
|
|
||||||
|
while (1) {
|
||||||
|
int ref_val = array_valid_values[i];
|
||||||
|
if (ref_val == INT_MAX)
|
||||||
|
break;
|
||||||
|
if (val == ref_val)
|
||||||
|
return val;
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
/* val is not a valid value */
|
||||||
|
av_log(ctx, AV_LOG_DEBUG,
|
||||||
|
"%s %d are not supported. Set to default value : %d\n",
|
||||||
|
val_name, val, default_value);
|
||||||
|
return default_value;
|
||||||
|
}
|
||||||
|
|
||||||
static void encode_codeword(PutBitContext *pb, int val, int codebook)
|
static void encode_codeword(PutBitContext *pb, int val, int codebook)
|
||||||
{
|
{
|
||||||
unsigned int rice_order, exp_order, switch_bits, first_exp, exp, zeros;
|
unsigned int rice_order, exp_order, switch_bits, first_exp, exp, zeros;
|
||||||
@@ -761,9 +789,12 @@ static int prores_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
|
|||||||
*buf++ = frame_flags;
|
*buf++ = frame_flags;
|
||||||
*buf++ = 0; /* reserved */
|
*buf++ = 0; /* reserved */
|
||||||
/* only write color properties, if valid value. set to unspecified otherwise */
|
/* only write color properties, if valid value. set to unspecified otherwise */
|
||||||
*buf++ = ff_int_from_list_or_default(avctx, "frame color primaries", pict->color_primaries, valid_primaries, 0);
|
*buf++ = int_from_list_or_default(avctx, "frame color primaries",
|
||||||
*buf++ = ff_int_from_list_or_default(avctx, "frame color trc", pict->color_trc, valid_trc, 0);
|
pict->color_primaries, valid_primaries, 0);
|
||||||
*buf++ = ff_int_from_list_or_default(avctx, "frame colorspace", pict->colorspace, valid_colorspace, 0);
|
*buf++ = int_from_list_or_default(avctx, "frame color trc",
|
||||||
|
pict->color_trc, valid_trc, 0);
|
||||||
|
*buf++ = int_from_list_or_default(avctx, "frame colorspace",
|
||||||
|
pict->colorspace, valid_colorspace, 0);
|
||||||
if (avctx->profile >= FF_PROFILE_PRORES_4444) {
|
if (avctx->profile >= FF_PROFILE_PRORES_4444) {
|
||||||
if (avctx->pix_fmt == AV_PIX_FMT_YUV444P10) {
|
if (avctx->pix_fmt == AV_PIX_FMT_YUV444P10) {
|
||||||
*buf++ = 0xA0;/* src b64a and no alpha */
|
*buf++ = 0xA0;/* src b64a and no alpha */
|
||||||
|
@@ -1142,22 +1142,3 @@ int64_t ff_guess_coded_bitrate(AVCodecContext *avctx)
|
|||||||
|
|
||||||
return bitrate;
|
return bitrate;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ff_int_from_list_or_default(void *ctx, const char * val_name, int val,
|
|
||||||
const int * array_valid_values, int default_value)
|
|
||||||
{
|
|
||||||
int i = 0, ref_val;
|
|
||||||
|
|
||||||
while (1) {
|
|
||||||
ref_val = array_valid_values[i];
|
|
||||||
if (ref_val == INT_MAX)
|
|
||||||
break;
|
|
||||||
if (val == ref_val)
|
|
||||||
return val;
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
/* val is not a valid value */
|
|
||||||
av_log(ctx, AV_LOG_DEBUG,
|
|
||||||
"%s %d are not supported. Set to default value : %d\n", val_name, val, default_value);
|
|
||||||
return default_value;
|
|
||||||
}
|
|
||||||
|
Reference in New Issue
Block a user