Reputation: 97
I'm extending an existing codec (Hap) inside ffmpeg library, adding some additional stuff to it (modifying FFmpeg code in my own fork of it)
One of the things I'd like to do is to store a per-file maximum encoded packet size in some global header/metadata so I can use it later while doing decoding (generally, the metadata/info to store can be arbitrary, size is just what I currently need for some specialized decoder I'm writing).
I'm modifying the ffmpeg code file https://github.com/FFmpeg/FFmpeg/blob/master/libavcodec/hapenc.c
EDIT: What I'd like to achieve
My initial incorrect attempt:
But I don't currently see any possibility to save any info outside of a single packet being produced by hap_encode
function and written to AVPacket *pkt
parameter.
AVCodecContext *avctx
's priv_data
: av_opt_set_int(avctx->priv_data, "max_compressed_frame_size", <size>, 0);
av_opt_set(avctx->priv_data, "max_compressed_frame_size", "<size_str>", 0);
Later, while decoding av_opt_get/av_opt_get_int
report non-existing key.
AVCodecContext *avctx
fields: avctx->flags2 = <size>;
avctx->extradata_size = <size>;
avctx->ticks_per_frame = <size>;
avctx->delay = <size>;
They all also seem to be not preserved when doing decoding later (I get just default values from decoder's AVCodecContext
)
Upvotes: 0
Views: 249