mirror of https://github.com/FFmpeg/FFmpeg.git
Compare commits
No commits in common. "ddeec523a252cd3d0d04e45e1d225ffd7f1eea43" and "3115c0c0e6c27c689a02a7267dcf8e61fa2ac425" have entirely different histories.
ddeec523a2
...
3115c0c0e6
|
|
@ -2,9 +2,6 @@ The last version increases of all libraries were on 2025-03-28
|
||||||
|
|
||||||
API changes, most recent first:
|
API changes, most recent first:
|
||||||
|
|
||||||
2025-10-xx - xxxxxxxxxx - lavu 60.14.100 - csp.h
|
|
||||||
Add av_csp_approximate_eotf_gamma().
|
|
||||||
|
|
||||||
2025-08-xx - xxxxxxxxxx - lavf 62.6.100 - oggparsevorbis.h oggparseopus.h oggparseflac.h
|
2025-08-xx - xxxxxxxxxx - lavf 62.6.100 - oggparsevorbis.h oggparseopus.h oggparseflac.h
|
||||||
Drop header packets from secondary chained ogg/{flac, opus, vorbis} streams
|
Drop header packets from secondary chained ogg/{flac, opus, vorbis} streams
|
||||||
from demuxer output.
|
from demuxer output.
|
||||||
|
|
|
||||||
|
|
@ -771,7 +771,7 @@ int check_avoptions_used(const AVDictionary *opts, const AVDictionary *opts_used
|
||||||
int assert_file_overwrite(const char *filename);
|
int assert_file_overwrite(const char *filename);
|
||||||
int find_codec(void *logctx, const char *name,
|
int find_codec(void *logctx, const char *name,
|
||||||
enum AVMediaType type, int encoder, const AVCodec **codec);
|
enum AVMediaType type, int encoder, const AVCodec **codec);
|
||||||
int parse_and_set_vsync(const char *arg, enum VideoSyncMethod *vsync_var, int file_idx, int st_idx, int is_global);
|
int parse_and_set_vsync(const char *arg, int *vsync_var, int file_idx, int st_idx, int is_global);
|
||||||
|
|
||||||
int filtergraph_is_simple(const FilterGraph *fg);
|
int filtergraph_is_simple(const FilterGraph *fg);
|
||||||
int fg_create_simple(FilterGraph **pfg,
|
int fg_create_simple(FilterGraph **pfg,
|
||||||
|
|
|
||||||
|
|
@ -295,7 +295,7 @@ int view_specifier_parse(const char **pspec, ViewSpecifier *vs)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int parse_and_set_vsync(const char *arg, enum VideoSyncMethod *vsync_var, int file_idx, int st_idx, int is_global)
|
int parse_and_set_vsync(const char *arg, int *vsync_var, int file_idx, int st_idx, int is_global)
|
||||||
{
|
{
|
||||||
if (!av_strcasecmp(arg, "cfr")) *vsync_var = VSYNC_CFR;
|
if (!av_strcasecmp(arg, "cfr")) *vsync_var = VSYNC_CFR;
|
||||||
else if (!av_strcasecmp(arg, "vfr")) *vsync_var = VSYNC_VFR;
|
else if (!av_strcasecmp(arg, "vfr")) *vsync_var = VSYNC_VFR;
|
||||||
|
|
|
||||||
|
|
@ -30,15 +30,15 @@
|
||||||
#define PS_MAX_AP_DELAY 5
|
#define PS_MAX_AP_DELAY 5
|
||||||
|
|
||||||
typedef struct PSDSPContext {
|
typedef struct PSDSPContext {
|
||||||
void (*add_squares)(INTFLOAT *restrict dst, const INTFLOAT (*src)[2], int n);
|
void (*add_squares)(INTFLOAT *dst, const INTFLOAT (*src)[2], int n);
|
||||||
void (*mul_pair_single)(INTFLOAT (*restrict dst)[2], INTFLOAT (*src0)[2], INTFLOAT *src1,
|
void (*mul_pair_single)(INTFLOAT (*dst)[2], INTFLOAT (*src0)[2], INTFLOAT *src1,
|
||||||
int n);
|
int n);
|
||||||
void (*hybrid_analysis)(INTFLOAT (*restrict out)[2], INTFLOAT (*in)[2],
|
void (*hybrid_analysis)(INTFLOAT (*out)[2], INTFLOAT (*in)[2],
|
||||||
const INTFLOAT (*filter)[8][2],
|
const INTFLOAT (*filter)[8][2],
|
||||||
ptrdiff_t stride, int n);
|
ptrdiff_t stride, int n);
|
||||||
void (*hybrid_analysis_ileave)(INTFLOAT (*restrict out)[32][2], INTFLOAT L[2][38][64],
|
void (*hybrid_analysis_ileave)(INTFLOAT (*out)[32][2], INTFLOAT L[2][38][64],
|
||||||
int i, int len);
|
int i, int len);
|
||||||
void (*hybrid_synthesis_deint)(INTFLOAT out[2][38][64], INTFLOAT (*restrict in)[32][2],
|
void (*hybrid_synthesis_deint)(INTFLOAT out[2][38][64], INTFLOAT (*in)[32][2],
|
||||||
int i, int len);
|
int i, int len);
|
||||||
void (*decorrelate)(INTFLOAT (*out)[2], INTFLOAT (*delay)[2],
|
void (*decorrelate)(INTFLOAT (*out)[2], INTFLOAT (*delay)[2],
|
||||||
INTFLOAT (*ap_delay)[PS_QMF_TIME_SLOTS+PS_MAX_AP_DELAY][2],
|
INTFLOAT (*ap_delay)[PS_QMF_TIME_SLOTS+PS_MAX_AP_DELAY][2],
|
||||||
|
|
|
||||||
|
|
@ -23,9 +23,9 @@
|
||||||
#include "libavutil/aarch64/cpu.h"
|
#include "libavutil/aarch64/cpu.h"
|
||||||
#include "libavcodec/pixblockdsp.h"
|
#include "libavcodec/pixblockdsp.h"
|
||||||
|
|
||||||
void ff_get_pixels_neon(int16_t *restrict block, const uint8_t *pixels,
|
void ff_get_pixels_neon(int16_t *block, const uint8_t *pixels,
|
||||||
ptrdiff_t stride);
|
ptrdiff_t stride);
|
||||||
void ff_diff_pixels_neon(int16_t *restrict block, const uint8_t *s1,
|
void ff_diff_pixels_neon(int16_t *block, const uint8_t *s1,
|
||||||
const uint8_t *s2, ptrdiff_t stride);
|
const uint8_t *s2, ptrdiff_t stride);
|
||||||
|
|
||||||
av_cold void ff_pixblockdsp_init_aarch64(PixblockDSPContext *c,
|
av_cold void ff_pixblockdsp_init_aarch64(PixblockDSPContext *c,
|
||||||
|
|
|
||||||
|
|
@ -23,18 +23,18 @@
|
||||||
#include "libavutil/arm/cpu.h"
|
#include "libavutil/arm/cpu.h"
|
||||||
#include "libavcodec/pixblockdsp.h"
|
#include "libavcodec/pixblockdsp.h"
|
||||||
|
|
||||||
void ff_get_pixels_armv6(int16_t *restrict block, const uint8_t *pixels,
|
void ff_get_pixels_armv6(int16_t *block, const uint8_t *pixels,
|
||||||
ptrdiff_t stride);
|
ptrdiff_t stride);
|
||||||
void ff_diff_pixels_armv6(int16_t *restrict block, const uint8_t *s1,
|
void ff_diff_pixels_armv6(int16_t *block, const uint8_t *s1,
|
||||||
const uint8_t *s2, ptrdiff_t stride);
|
const uint8_t *s2, ptrdiff_t stride);
|
||||||
|
|
||||||
void ff_get_pixels_neon(int16_t *restrict block, const uint8_t *pixels,
|
void ff_get_pixels_neon(int16_t *block, const uint8_t *pixels,
|
||||||
ptrdiff_t stride);
|
ptrdiff_t stride);
|
||||||
void ff_get_pixels_unaligned_neon(int16_t *restrict block, const uint8_t *pixels,
|
void ff_get_pixels_unaligned_neon(int16_t *block, const uint8_t *pixels,
|
||||||
ptrdiff_t stride);
|
ptrdiff_t stride);
|
||||||
void ff_diff_pixels_neon(int16_t *restrict block, const uint8_t *s1,
|
void ff_diff_pixels_neon(int16_t *block, const uint8_t *s1,
|
||||||
const uint8_t *s2, ptrdiff_t stride);
|
const uint8_t *s2, ptrdiff_t stride);
|
||||||
void ff_diff_pixels_unaligned_neon(int16_t *restrict block, const uint8_t *s1,
|
void ff_diff_pixels_unaligned_neon(int16_t *block, const uint8_t *s1,
|
||||||
const uint8_t *s2, ptrdiff_t stride);
|
const uint8_t *s2, ptrdiff_t stride);
|
||||||
|
|
||||||
av_cold void ff_pixblockdsp_init_arm(PixblockDSPContext *c,
|
av_cold void ff_pixblockdsp_init_arm(PixblockDSPContext *c,
|
||||||
|
|
|
||||||
|
|
@ -891,7 +891,7 @@ void CBS_FUNC(delete_unit)(CodedBitstreamFragment *frag,
|
||||||
|
|
||||||
static void cbs_default_free_unit_content(AVRefStructOpaque opaque, void *content)
|
static void cbs_default_free_unit_content(AVRefStructOpaque opaque, void *content)
|
||||||
{
|
{
|
||||||
CodedBitstreamUnitTypeDescriptor *desc = opaque.c;
|
const CodedBitstreamUnitTypeDescriptor *desc = opaque.c;
|
||||||
|
|
||||||
for (int i = 0; i < desc->type.ref.nb_offsets; i++) {
|
for (int i = 0; i < desc->type.ref.nb_offsets; i++) {
|
||||||
void **ptr = (void**)((char*)content + desc->type.ref.offsets[i]);
|
void **ptr = (void**)((char*)content + desc->type.ref.offsets[i]);
|
||||||
|
|
@ -899,11 +899,11 @@ static void cbs_default_free_unit_content(AVRefStructOpaque opaque, void *conten
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static CodedBitstreamUnitTypeDescriptor
|
static const CodedBitstreamUnitTypeDescriptor
|
||||||
*cbs_find_unit_type_desc(CodedBitstreamContext *ctx,
|
*cbs_find_unit_type_desc(CodedBitstreamContext *ctx,
|
||||||
CodedBitstreamUnit *unit)
|
CodedBitstreamUnit *unit)
|
||||||
{
|
{
|
||||||
CodedBitstreamUnitTypeDescriptor *desc;
|
const CodedBitstreamUnitTypeDescriptor *desc;
|
||||||
int i, j;
|
int i, j;
|
||||||
|
|
||||||
if (!ctx->codec->unit_types)
|
if (!ctx->codec->unit_types)
|
||||||
|
|
@ -927,7 +927,7 @@ static CodedBitstreamUnitTypeDescriptor
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void *cbs_alloc_content(CodedBitstreamUnitTypeDescriptor *desc)
|
static void *cbs_alloc_content(const CodedBitstreamUnitTypeDescriptor *desc)
|
||||||
{
|
{
|
||||||
return av_refstruct_alloc_ext_c(desc->content_size, 0,
|
return av_refstruct_alloc_ext_c(desc->content_size, 0,
|
||||||
(AVRefStructOpaque){ .c = desc },
|
(AVRefStructOpaque){ .c = desc },
|
||||||
|
|
@ -939,7 +939,7 @@ static void *cbs_alloc_content(CodedBitstreamUnitTypeDescriptor *desc)
|
||||||
int CBS_FUNC(alloc_unit_content)(CodedBitstreamContext *ctx,
|
int CBS_FUNC(alloc_unit_content)(CodedBitstreamContext *ctx,
|
||||||
CodedBitstreamUnit *unit)
|
CodedBitstreamUnit *unit)
|
||||||
{
|
{
|
||||||
CodedBitstreamUnitTypeDescriptor *desc;
|
const CodedBitstreamUnitTypeDescriptor *desc;
|
||||||
|
|
||||||
av_assert0(!unit->content && !unit->content_ref);
|
av_assert0(!unit->content && !unit->content_ref);
|
||||||
|
|
||||||
|
|
@ -957,7 +957,7 @@ int CBS_FUNC(alloc_unit_content)(CodedBitstreamContext *ctx,
|
||||||
|
|
||||||
static int cbs_clone_noncomplex_unit_content(void **clonep,
|
static int cbs_clone_noncomplex_unit_content(void **clonep,
|
||||||
const CodedBitstreamUnit *unit,
|
const CodedBitstreamUnit *unit,
|
||||||
CodedBitstreamUnitTypeDescriptor *desc)
|
const CodedBitstreamUnitTypeDescriptor *desc)
|
||||||
{
|
{
|
||||||
const uint8_t *src;
|
const uint8_t *src;
|
||||||
uint8_t *copy;
|
uint8_t *copy;
|
||||||
|
|
@ -1017,7 +1017,7 @@ fail:
|
||||||
static int cbs_clone_unit_content(CodedBitstreamContext *ctx,
|
static int cbs_clone_unit_content(CodedBitstreamContext *ctx,
|
||||||
CodedBitstreamUnit *unit)
|
CodedBitstreamUnit *unit)
|
||||||
{
|
{
|
||||||
CodedBitstreamUnitTypeDescriptor *desc;
|
const CodedBitstreamUnitTypeDescriptor *desc;
|
||||||
void *new_content;
|
void *new_content;
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -421,7 +421,7 @@ static void cbs_apv_free_metadata(AVRefStructOpaque unused, void *content)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static CodedBitstreamUnitTypeDescriptor cbs_apv_unit_types[] = {
|
static const CodedBitstreamUnitTypeDescriptor cbs_apv_unit_types[] = {
|
||||||
{
|
{
|
||||||
.nb_unit_types = CBS_UNIT_TYPE_RANGE,
|
.nb_unit_types = CBS_UNIT_TYPE_RANGE,
|
||||||
.unit_type.range = {
|
.unit_type.range = {
|
||||||
|
|
|
||||||
|
|
@ -1312,7 +1312,7 @@ static void cbs_av1_free_metadata(AVRefStructOpaque unused, void *content)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static CodedBitstreamUnitTypeDescriptor cbs_av1_unit_types[] = {
|
static const CodedBitstreamUnitTypeDescriptor cbs_av1_unit_types[] = {
|
||||||
CBS_UNIT_TYPE_POD(AV1_OBU_SEQUENCE_HEADER, AV1RawOBU),
|
CBS_UNIT_TYPE_POD(AV1_OBU_SEQUENCE_HEADER, AV1RawOBU),
|
||||||
CBS_UNIT_TYPE_POD(AV1_OBU_TEMPORAL_DELIMITER, AV1RawOBU),
|
CBS_UNIT_TYPE_POD(AV1_OBU_TEMPORAL_DELIMITER, AV1RawOBU),
|
||||||
CBS_UNIT_TYPE_POD(AV1_OBU_FRAME_HEADER, AV1RawOBU),
|
CBS_UNIT_TYPE_POD(AV1_OBU_FRAME_HEADER, AV1RawOBU),
|
||||||
|
|
|
||||||
|
|
@ -1997,7 +1997,7 @@ static void cbs_h264_free_sei(AVRefStructOpaque unused, void *content)
|
||||||
ff_cbs_sei_free_message_list(&sei->message_list);
|
ff_cbs_sei_free_message_list(&sei->message_list);
|
||||||
}
|
}
|
||||||
|
|
||||||
static CodedBitstreamUnitTypeDescriptor cbs_h264_unit_types[] = {
|
static const CodedBitstreamUnitTypeDescriptor cbs_h264_unit_types[] = {
|
||||||
CBS_UNIT_TYPE_POD(H264_NAL_SPS, H264RawSPS),
|
CBS_UNIT_TYPE_POD(H264_NAL_SPS, H264RawSPS),
|
||||||
CBS_UNIT_TYPE_POD(H264_NAL_SPS_EXT, H264RawSPSExtension),
|
CBS_UNIT_TYPE_POD(H264_NAL_SPS_EXT, H264RawSPSExtension),
|
||||||
|
|
||||||
|
|
@ -2023,7 +2023,7 @@ static void cbs_h265_free_sei(AVRefStructOpaque unused, void *content)
|
||||||
ff_cbs_sei_free_message_list(&sei->message_list);
|
ff_cbs_sei_free_message_list(&sei->message_list);
|
||||||
}
|
}
|
||||||
|
|
||||||
static CodedBitstreamUnitTypeDescriptor cbs_h265_unit_types[] = {
|
static const CodedBitstreamUnitTypeDescriptor cbs_h265_unit_types[] = {
|
||||||
CBS_UNIT_TYPE_INTERNAL_REF(HEVC_NAL_VPS, H265RawVPS, extension_data.data),
|
CBS_UNIT_TYPE_INTERNAL_REF(HEVC_NAL_VPS, H265RawVPS, extension_data.data),
|
||||||
CBS_UNIT_TYPE_INTERNAL_REF(HEVC_NAL_SPS, H265RawSPS, extension_data.data),
|
CBS_UNIT_TYPE_INTERNAL_REF(HEVC_NAL_SPS, H265RawSPS, extension_data.data),
|
||||||
CBS_UNIT_TYPE_INTERNAL_REF(HEVC_NAL_PPS, H265RawPPS, extension_data.data),
|
CBS_UNIT_TYPE_INTERNAL_REF(HEVC_NAL_PPS, H265RawPPS, extension_data.data),
|
||||||
|
|
@ -2060,7 +2060,7 @@ static void cbs_h266_free_sei(AVRefStructOpaque unused, void *content)
|
||||||
ff_cbs_sei_free_message_list(&sei->message_list);
|
ff_cbs_sei_free_message_list(&sei->message_list);
|
||||||
}
|
}
|
||||||
|
|
||||||
static CodedBitstreamUnitTypeDescriptor cbs_h266_unit_types[] = {
|
static const CodedBitstreamUnitTypeDescriptor cbs_h266_unit_types[] = {
|
||||||
CBS_UNIT_TYPE_INTERNAL_REF(VVC_DCI_NUT, H266RawDCI, extension_data.data),
|
CBS_UNIT_TYPE_INTERNAL_REF(VVC_DCI_NUT, H266RawDCI, extension_data.data),
|
||||||
CBS_UNIT_TYPE_INTERNAL_REF(VVC_OPI_NUT, H266RawOPI, extension_data.data),
|
CBS_UNIT_TYPE_INTERNAL_REF(VVC_OPI_NUT, H266RawOPI, extension_data.data),
|
||||||
CBS_UNIT_TYPE_INTERNAL_REF(VVC_VPS_NUT, H266RawVPS, extension_data.data),
|
CBS_UNIT_TYPE_INTERNAL_REF(VVC_VPS_NUT, H266RawVPS, extension_data.data),
|
||||||
|
|
|
||||||
|
|
@ -151,7 +151,7 @@ typedef struct CodedBitstreamType {
|
||||||
|
|
||||||
// List of unit type descriptors for this codec.
|
// List of unit type descriptors for this codec.
|
||||||
// Terminated by a descriptor with nb_unit_types equal to zero.
|
// Terminated by a descriptor with nb_unit_types equal to zero.
|
||||||
CodedBitstreamUnitTypeDescriptor *unit_types;
|
const CodedBitstreamUnitTypeDescriptor *unit_types;
|
||||||
|
|
||||||
// Split frag->data into coded bitstream units, creating the
|
// Split frag->data into coded bitstream units, creating the
|
||||||
// frag->units array. Fill data but not content on each unit.
|
// frag->units array. Fill data but not content on each unit.
|
||||||
|
|
|
||||||
|
|
@ -417,7 +417,7 @@ static int cbs_jpeg_assemble_fragment(CodedBitstreamContext *ctx,
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static CodedBitstreamUnitTypeDescriptor cbs_jpeg_unit_types[] = {
|
static const CodedBitstreamUnitTypeDescriptor cbs_jpeg_unit_types[] = {
|
||||||
CBS_UNIT_RANGE_POD(JPEG_MARKER_SOF0, JPEG_MARKER_SOF3, JPEGRawFrameHeader),
|
CBS_UNIT_RANGE_POD(JPEG_MARKER_SOF0, JPEG_MARKER_SOF3, JPEGRawFrameHeader),
|
||||||
|
|
||||||
CBS_UNIT_RANGE_INTERNAL_REF(JPEG_MARKER_APPN, JPEG_MARKER_APPN + 15,
|
CBS_UNIT_RANGE_INTERNAL_REF(JPEG_MARKER_APPN, JPEG_MARKER_APPN + 15,
|
||||||
|
|
|
||||||
|
|
@ -397,7 +397,7 @@ static int cbs_mpeg2_assemble_fragment(CodedBitstreamContext *ctx,
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static CodedBitstreamUnitTypeDescriptor cbs_mpeg2_unit_types[] = {
|
static const CodedBitstreamUnitTypeDescriptor cbs_mpeg2_unit_types[] = {
|
||||||
CBS_UNIT_TYPE_INTERNAL_REF(MPEG2_START_PICTURE, MPEG2RawPictureHeader,
|
CBS_UNIT_TYPE_INTERNAL_REF(MPEG2_START_PICTURE, MPEG2RawPictureHeader,
|
||||||
extra_information_picture.extra_information),
|
extra_information_picture.extra_information),
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -366,7 +366,7 @@ static int cbs_vp8_assemble_fragment(CodedBitstreamContext *ctx,
|
||||||
return AVERROR_PATCHWELCOME;
|
return AVERROR_PATCHWELCOME;
|
||||||
}
|
}
|
||||||
|
|
||||||
static CodedBitstreamUnitTypeDescriptor cbs_vp8_unit_types[] = {
|
static const CodedBitstreamUnitTypeDescriptor cbs_vp8_unit_types[] = {
|
||||||
CBS_UNIT_TYPE_INTERNAL_REF(0, VP8RawFrame, data),
|
CBS_UNIT_TYPE_INTERNAL_REF(0, VP8RawFrame, data),
|
||||||
CBS_UNIT_TYPE_END_OF_LIST,
|
CBS_UNIT_TYPE_END_OF_LIST,
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -594,7 +594,7 @@ static av_cold void cbs_vp9_flush(CodedBitstreamContext *ctx)
|
||||||
memset(vp9->ref, 0, sizeof(vp9->ref));
|
memset(vp9->ref, 0, sizeof(vp9->ref));
|
||||||
}
|
}
|
||||||
|
|
||||||
static CodedBitstreamUnitTypeDescriptor cbs_vp9_unit_types[] = {
|
static const CodedBitstreamUnitTypeDescriptor cbs_vp9_unit_types[] = {
|
||||||
CBS_UNIT_TYPE_INTERNAL_REF(0, VP9RawFrame, data),
|
CBS_UNIT_TYPE_INTERNAL_REF(0, VP9RawFrame, data),
|
||||||
CBS_UNIT_TYPE_END_OF_LIST
|
CBS_UNIT_TYPE_END_OF_LIST
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -56,7 +56,7 @@ typedef struct DVEncContext {
|
||||||
AVCodecContext *avctx;
|
AVCodecContext *avctx;
|
||||||
uint8_t *buf;
|
uint8_t *buf;
|
||||||
|
|
||||||
void (*get_pixels)(int16_t *restrict block, const uint8_t *pixels, ptrdiff_t linesize);
|
void (*get_pixels)(int16_t *block, const uint8_t *pixels, ptrdiff_t linesize);
|
||||||
void (*fdct[2])(int16_t *block);
|
void (*fdct[2])(int16_t *block);
|
||||||
|
|
||||||
me_cmp_func ildct_cmp;
|
me_cmp_func ildct_cmp;
|
||||||
|
|
|
||||||
|
|
@ -323,7 +323,7 @@ static int png_get_chrm(enum AVColorPrimaries prim, uint8_t *buf)
|
||||||
|
|
||||||
static int png_get_gama(enum AVColorTransferCharacteristic trc, uint8_t *buf)
|
static int png_get_gama(enum AVColorTransferCharacteristic trc, uint8_t *buf)
|
||||||
{
|
{
|
||||||
double gamma = av_csp_approximate_eotf_gamma(trc);
|
double gamma = av_csp_approximate_trc_gamma(trc);
|
||||||
if (gamma <= 1e-6)
|
if (gamma <= 1e-6)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -256,7 +256,7 @@ static inline void put_bits_no_assert(PutBitContext *s, int n, BitBuf value)
|
||||||
*/
|
*/
|
||||||
static inline void put_bits(PutBitContext *s, int n, BitBuf value)
|
static inline void put_bits(PutBitContext *s, int n, BitBuf value)
|
||||||
{
|
{
|
||||||
av_assert2(n <= 31 && value < (BitBuf)(1U << n));
|
av_assert2(n <= 31 && value < (1UL << n));
|
||||||
put_bits_no_assert(s, n, value);
|
put_bits_no_assert(s, n, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -265,7 +265,7 @@ static inline void put_bits_le(PutBitContext *s, int n, BitBuf value)
|
||||||
BitBuf bit_buf;
|
BitBuf bit_buf;
|
||||||
int bit_left;
|
int bit_left;
|
||||||
|
|
||||||
av_assert2(n <= 31 && value < (BitBuf)(1U << n));
|
av_assert2(n <= 31 && value < (1UL << n));
|
||||||
|
|
||||||
bit_buf = s->bit_buf;
|
bit_buf = s->bit_buf;
|
||||||
bit_left = s->bit_left;
|
bit_left = s->bit_left;
|
||||||
|
|
|
||||||
|
|
@ -46,7 +46,7 @@ static av_always_inline void fill_rectangle(void *vp, int w, int h, int stride,
|
||||||
w *= size;
|
w *= size;
|
||||||
stride *= size;
|
stride *= size;
|
||||||
|
|
||||||
av_assert2((((uintptr_t)vp)&(FFMIN(w, 8<<(HAVE_NEON|ARCH_PPC|HAVE_MMX))-1)) == 0);
|
av_assert2((((long)vp)&(FFMIN(w, 8<<(HAVE_NEON|ARCH_PPC|HAVE_MMX))-1)) == 0);
|
||||||
av_assert2((stride&(w-1))==0);
|
av_assert2((stride&(w-1))==0);
|
||||||
if(w==2){
|
if(w==2){
|
||||||
const uint16_t v= size==4 ? val : val*0x0101;
|
const uint16_t v= size==4 ? val : val*0x0101;
|
||||||
|
|
|
||||||
|
|
@ -26,18 +26,18 @@
|
||||||
#include "libavutil/riscv/cpu.h"
|
#include "libavutil/riscv/cpu.h"
|
||||||
#include "libavcodec/pixblockdsp.h"
|
#include "libavcodec/pixblockdsp.h"
|
||||||
|
|
||||||
void ff_get_pixels_8_rvi(int16_t *restrict block, const uint8_t *pixels,
|
void ff_get_pixels_8_rvi(int16_t *block, const uint8_t *pixels,
|
||||||
ptrdiff_t stride);
|
ptrdiff_t stride);
|
||||||
void ff_get_pixels_16_rvi(int16_t *restrict block, const uint8_t *pixels,
|
void ff_get_pixels_16_rvi(int16_t *block, const uint8_t *pixels,
|
||||||
ptrdiff_t stride);
|
ptrdiff_t stride);
|
||||||
|
|
||||||
void ff_get_pixels_8_rvv(int16_t *restrict block, const uint8_t *pixels,
|
void ff_get_pixels_8_rvv(int16_t *block, const uint8_t *pixels,
|
||||||
ptrdiff_t stride);
|
ptrdiff_t stride);
|
||||||
void ff_get_pixels_unaligned_8_rvv(int16_t *restrict block, const uint8_t *pixels,
|
void ff_get_pixels_unaligned_8_rvv(int16_t *block, const uint8_t *pixels,
|
||||||
ptrdiff_t stride);
|
ptrdiff_t stride);
|
||||||
void ff_diff_pixels_rvv(int16_t *restrict block, const uint8_t *s1,
|
void ff_diff_pixels_rvv(int16_t *block, const uint8_t *s1,
|
||||||
const uint8_t *s2, ptrdiff_t stride);
|
const uint8_t *s2, ptrdiff_t stride);
|
||||||
void ff_diff_pixels_unaligned_rvv(int16_t *restrict block, const uint8_t *s1,
|
void ff_diff_pixels_unaligned_rvv(int16_t *block, const uint8_t *s1,
|
||||||
const uint8_t *s2, ptrdiff_t stride);
|
const uint8_t *s2, ptrdiff_t stride);
|
||||||
|
|
||||||
av_cold void ff_pixblockdsp_init_riscv(PixblockDSPContext *c,
|
av_cold void ff_pixblockdsp_init_riscv(PixblockDSPContext *c,
|
||||||
|
|
|
||||||
|
|
@ -26,14 +26,14 @@
|
||||||
#include "libavutil/attributes.h"
|
#include "libavutil/attributes.h"
|
||||||
#include "libavcodec/aacpsdsp.h"
|
#include "libavcodec/aacpsdsp.h"
|
||||||
|
|
||||||
void ff_ps_add_squares_sse (float *restrict dst, const float (*src)[2], int n);
|
void ff_ps_add_squares_sse (float *dst, const float (*src)[2], int n);
|
||||||
void ff_ps_add_squares_sse3 (float *restrict dst, const float (*src)[2], int n);
|
void ff_ps_add_squares_sse3 (float *dst, const float (*src)[2], int n);
|
||||||
void ff_ps_mul_pair_single_sse (float (*restrict dst)[2], float (*src0)[2],
|
void ff_ps_mul_pair_single_sse (float (*dst)[2], float (*src0)[2],
|
||||||
float *src1, int n);
|
float *src1, int n);
|
||||||
void ff_ps_hybrid_analysis_sse (float (*restrict out)[2], float (*in)[2],
|
void ff_ps_hybrid_analysis_sse (float (*out)[2], float (*in)[2],
|
||||||
const float (*filter)[8][2],
|
const float (*filter)[8][2],
|
||||||
ptrdiff_t stride, int n);
|
ptrdiff_t stride, int n);
|
||||||
void ff_ps_hybrid_analysis_fma3(float (*restrict out)[2], float (*in)[2],
|
void ff_ps_hybrid_analysis_fma3(float (*out)[2], float (*in)[2],
|
||||||
const float (*filter)[8][2],
|
const float (*filter)[8][2],
|
||||||
ptrdiff_t stride, int n);
|
ptrdiff_t stride, int n);
|
||||||
void ff_ps_stereo_interpolate_sse3(float (*l)[2], float (*r)[2],
|
void ff_ps_stereo_interpolate_sse3(float (*l)[2], float (*r)[2],
|
||||||
|
|
@ -42,11 +42,11 @@ void ff_ps_stereo_interpolate_sse3(float (*l)[2], float (*r)[2],
|
||||||
void ff_ps_stereo_interpolate_ipdopd_sse3(float (*l)[2], float (*r)[2],
|
void ff_ps_stereo_interpolate_ipdopd_sse3(float (*l)[2], float (*r)[2],
|
||||||
float h[2][4], float h_step[2][4],
|
float h[2][4], float h_step[2][4],
|
||||||
int len);
|
int len);
|
||||||
void ff_ps_hybrid_synthesis_deint_sse(float out[2][38][64], float (*restrict in)[32][2],
|
void ff_ps_hybrid_synthesis_deint_sse(float out[2][38][64], float (*in)[32][2],
|
||||||
int i, int len);
|
int i, int len);
|
||||||
void ff_ps_hybrid_synthesis_deint_sse4(float out[2][38][64], float (*restrict in)[32][2],
|
void ff_ps_hybrid_synthesis_deint_sse4(float out[2][38][64], float (*in)[32][2],
|
||||||
int i, int len);
|
int i, int len);
|
||||||
void ff_ps_hybrid_analysis_ileave_sse(float (*restrict out)[32][2], float L[2][38][64],
|
void ff_ps_hybrid_analysis_ileave_sse(float (*out)[32][2], float L[2][38][64],
|
||||||
int i, int len);
|
int i, int len);
|
||||||
|
|
||||||
av_cold void ff_psdsp_init_x86(PSDSPContext *s)
|
av_cold void ff_psdsp_init_x86(PSDSPContext *s)
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@
|
||||||
#include "libavutil/x86/cpu.h"
|
#include "libavutil/x86/cpu.h"
|
||||||
#include "libavcodec/dnxhdenc.h"
|
#include "libavcodec/dnxhdenc.h"
|
||||||
|
|
||||||
void ff_get_pixels_8x4_sym_sse2(int16_t *restrict block, const uint8_t *pixels,
|
void ff_get_pixels_8x4_sym_sse2(int16_t *block, const uint8_t *pixels,
|
||||||
ptrdiff_t line_size);
|
ptrdiff_t line_size);
|
||||||
|
|
||||||
av_cold void ff_dnxhdenc_init_x86(DNXHDEncContext *ctx)
|
av_cold void ff_dnxhdenc_init_x86(DNXHDEncContext *ctx)
|
||||||
|
|
|
||||||
|
|
@ -22,11 +22,11 @@
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
void ff_add_pixels_clamped_sse2(const int16_t *block, uint8_t *restrict pixels,
|
void ff_add_pixels_clamped_sse2(const int16_t *block, uint8_t *pixels,
|
||||||
ptrdiff_t line_size);
|
ptrdiff_t line_size);
|
||||||
void ff_put_pixels_clamped_sse2(const int16_t *block, uint8_t *restrict pixels,
|
void ff_put_pixels_clamped_sse2(const int16_t *block, uint8_t *pixels,
|
||||||
ptrdiff_t line_size);
|
ptrdiff_t line_size);
|
||||||
void ff_put_signed_pixels_clamped_sse2(const int16_t *block, uint8_t *restrict pixels,
|
void ff_put_signed_pixels_clamped_sse2(const int16_t *block, uint8_t *pixels,
|
||||||
ptrdiff_t line_size);
|
ptrdiff_t line_size);
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -23,8 +23,8 @@
|
||||||
#include "libavutil/x86/cpu.h"
|
#include "libavutil/x86/cpu.h"
|
||||||
#include "libavcodec/pixblockdsp.h"
|
#include "libavcodec/pixblockdsp.h"
|
||||||
|
|
||||||
void ff_get_pixels_sse2(int16_t *restrict block, const uint8_t *pixels, ptrdiff_t stride);
|
void ff_get_pixels_sse2(int16_t *block, const uint8_t *pixels, ptrdiff_t stride);
|
||||||
void ff_diff_pixels_sse2(int16_t *restrict block, const uint8_t *s1, const uint8_t *s2,
|
void ff_diff_pixels_sse2(int16_t *block, const uint8_t *s1, const uint8_t *s2,
|
||||||
ptrdiff_t stride);
|
ptrdiff_t stride);
|
||||||
|
|
||||||
av_cold void ff_pixblockdsp_init_x86(PixblockDSPContext *c,
|
av_cold void ff_pixblockdsp_init_x86(PixblockDSPContext *c,
|
||||||
|
|
|
||||||
|
|
@ -2523,7 +2523,7 @@ static int mov_write_gama_tag(AVFormatContext *s, AVIOContext *pb, MOVTrack *tra
|
||||||
{
|
{
|
||||||
uint32_t gama = 0;
|
uint32_t gama = 0;
|
||||||
if (gamma <= 0.0)
|
if (gamma <= 0.0)
|
||||||
gamma = av_csp_approximate_eotf_gamma(track->par->color_trc);
|
gamma = av_csp_approximate_trc_gamma(track->par->color_trc);
|
||||||
av_log(s, AV_LOG_DEBUG, "gamma value %g\n", gamma);
|
av_log(s, AV_LOG_DEBUG, "gamma value %g\n", gamma);
|
||||||
|
|
||||||
if (gamma > 1e-6) {
|
if (gamma > 1e-6) {
|
||||||
|
|
|
||||||
|
|
@ -157,27 +157,6 @@ double av_csp_approximate_trc_gamma(enum AVColorTransferCharacteristic trc)
|
||||||
return 0.0;
|
return 0.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const double approximate_eotf_gamma[AVCOL_TRC_NB] = {
|
|
||||||
[AVCOL_TRC_BT709] = 2.2,
|
|
||||||
[AVCOL_TRC_SMPTE170M] = 2.2,
|
|
||||||
[AVCOL_TRC_SMPTE240M] = 2.2,
|
|
||||||
[AVCOL_TRC_BT1361_ECG] = 2.2,
|
|
||||||
[AVCOL_TRC_BT2020_10] = 2.2,
|
|
||||||
[AVCOL_TRC_BT2020_12] = 2.2,
|
|
||||||
[AVCOL_TRC_GAMMA22] = 2.2,
|
|
||||||
[AVCOL_TRC_IEC61966_2_1] = 2.2,
|
|
||||||
[AVCOL_TRC_GAMMA28] = 2.8,
|
|
||||||
[AVCOL_TRC_LINEAR] = 1.0,
|
|
||||||
[AVCOL_TRC_SMPTE428] = 2.6,
|
|
||||||
};
|
|
||||||
|
|
||||||
double av_csp_approximate_eotf_gamma(enum AVColorTransferCharacteristic trc)
|
|
||||||
{
|
|
||||||
if ((unsigned)trc >= AVCOL_TRC_NB)
|
|
||||||
return 0.0;
|
|
||||||
return approximate_eotf_gamma[trc];
|
|
||||||
}
|
|
||||||
|
|
||||||
#define BT709_alpha 1.099296826809442
|
#define BT709_alpha 1.099296826809442
|
||||||
#define BT709_beta 0.018053968510807
|
#define BT709_beta 0.018053968510807
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -133,22 +133,6 @@ enum AVColorPrimaries av_csp_primaries_id_from_desc(const AVColorPrimariesDesc *
|
||||||
*/
|
*/
|
||||||
double av_csp_approximate_trc_gamma(enum AVColorTransferCharacteristic trc);
|
double av_csp_approximate_trc_gamma(enum AVColorTransferCharacteristic trc);
|
||||||
|
|
||||||
/**
|
|
||||||
* Determine a suitable EOTF 'gamma' value to match the supplied
|
|
||||||
* AVColorTransferCharacteristic.
|
|
||||||
*
|
|
||||||
* This function returns the gamma value (exponent) for a simple pure power
|
|
||||||
* function approximation of the supplied AVColorTransferCharacteristic, or 0.
|
|
||||||
* if no reasonable approximation exists.
|
|
||||||
*
|
|
||||||
* EOTF(v) = (L_w - L_b) * v^gamma + L_b
|
|
||||||
*
|
|
||||||
* @return Will return an approximation to the simple gamma function matching
|
|
||||||
* the supplied Transfer Characteristic EOTF, Will return 0.0 for any
|
|
||||||
* we cannot reasonably match against.
|
|
||||||
*/
|
|
||||||
double av_csp_approximate_eotf_gamma(enum AVColorTransferCharacteristic trc);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Determine the function needed to apply the given
|
* Determine the function needed to apply the given
|
||||||
* AVColorTransferCharacteristic to linear input.
|
* AVColorTransferCharacteristic to linear input.
|
||||||
|
|
|
||||||
|
|
@ -79,7 +79,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define LIBAVUTIL_VERSION_MAJOR 60
|
#define LIBAVUTIL_VERSION_MAJOR 60
|
||||||
#define LIBAVUTIL_VERSION_MINOR 14
|
#define LIBAVUTIL_VERSION_MINOR 13
|
||||||
#define LIBAVUTIL_VERSION_MICRO 100
|
#define LIBAVUTIL_VERSION_MICRO 100
|
||||||
|
|
||||||
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
|
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue