diff options
| author | 2026-04-13 17:36:54 -0400 | |
|---|---|---|
| committer | 2026-04-13 17:36:54 -0400 | |
| commit | 4ceadc74f0086168fbc576032ba3e6f23af16e39 (patch) | |
| tree | a542703d78f2b29ac1a756fdceec78e40860bab0 /src/codec/ffmpeg/common.c | |
| parent | 77b54c35bf9587450cd636e0d7df37e190e28bfb (diff) | |
| download | camu-4ceadc74f0086168fbc576032ba3e6f23af16e39.tar.gz camu-4ceadc74f0086168fbc576032ba3e6f23af16e39.tar.bz2 camu-4ceadc74f0086168fbc576032ba3e6f23af16e39.zip | |
Changes that went uncommitted for too long
Signed-off-by: Andrew Opalach <andrew@akon.city>
Diffstat (limited to 'src/codec/ffmpeg/common.c')
| -rw-r--r-- | src/codec/ffmpeg/common.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/codec/ffmpeg/common.c b/src/codec/ffmpeg/common.c index e697a00..59f59b7 100644 --- a/src/codec/ffmpeg/common.c +++ b/src/codec/ffmpeg/common.c @@ -65,3 +65,31 @@ void camu_ff_common_init(void) #endif camu_ff_set_log_callback(av_log_callback); } + +AVCodecContext *camu_ff_alloc_codec_context(const AVCodec *codec, AVCodecParameters *codecpar) +{ + AVCodecContext *codec_context = avcodec_alloc_context3(codec); + if (!codec_context) { + log_error("Failed to alloc codec context."); + return NULL; + } + + s32 ret = avcodec_parameters_to_context(codec_context, codecpar); + if (ret < 0) { + log_error("Failed to copy codec parameters (%s).", av_err2str(ret)); + return NULL; + } + + return codec_context; +} + +bool camu_ff_open_avcodec(AVCodecContext *codec_context, const AVCodec *codec, AVDictionary *opts) +{ + s32 ret = avcodec_open2(codec_context, codec, &opts); + if (ret < 0) { + log_error("Failed to open codec %s (%s).", codec->name, av_err2str(ret)); + return false; + } + av_dict_free(&opts); + return true; +} |