diff options
| author | 2025-03-15 20:40:38 -0400 | |
|---|---|---|
| committer | 2025-03-15 20:40:38 -0400 | |
| commit | 846bd3d1b7bcec3653aa9d662f559235c4689e1b (patch) | |
| tree | 56906544460079681f46d23d48d76f1a8242ea75 /src/codec/ffmpeg | |
| parent | 46d5660a2582323e1c9c33a56694c322bc21b7bc (diff) | |
| download | camu-846bd3d1b7bcec3653aa9d662f559235c4689e1b.tar.gz camu-846bd3d1b7bcec3653aa9d662f559235c4689e1b.tar.bz2 camu-846bd3d1b7bcec3653aa9d662f559235c4689e1b.zip | |
Sink refactor wip
Dangling target won't stay around. I have a couple of ideas about how to massively simplify the handling of ended entries.
Signed-off-by: Andrew Opalach <andrew@akon.city>
Diffstat (limited to 'src/codec/ffmpeg')
| -rw-r--r-- | src/codec/ffmpeg/avio.c | 4 | ||||
| -rw-r--r-- | src/codec/ffmpeg/decoder.c | 8 | ||||
| -rw-r--r-- | src/codec/ffmpeg/decoder.h | 4 | ||||
| -rw-r--r-- | src/codec/ffmpeg/demuxer.c | 5 |
4 files changed, 8 insertions, 13 deletions
diff --git a/src/codec/ffmpeg/avio.c b/src/codec/ffmpeg/avio.c index 143bc1f..855a4de 100644 --- a/src/codec/ffmpeg/avio.c +++ b/src/codec/ffmpeg/avio.c @@ -2,10 +2,10 @@ #include "../../cache/handle.h" -s32 camu_avio_read(void *data, u8 *buf, s32 buf_size) +s32 camu_avio_read(void *data, u8 *buf, s32 size) { struct cch_handle *handle = (struct cch_handle *)data; - return cch_handle_read(handle, buf, buf_size); + return cch_handle_read(handle, buf, size); } s64 camu_avio_seek(void *data, s64 offset, s32 whence) diff --git a/src/codec/ffmpeg/decoder.c b/src/codec/ffmpeg/decoder.c index 5f4de67..dfabe05 100644 --- a/src/codec/ffmpeg/decoder.c +++ b/src/codec/ffmpeg/decoder.c @@ -11,15 +11,11 @@ #ifdef CAMU_FF_DECODER_HWACCEL #if defined CAMU_RENDERER_VULKAN static const char *hwdevces[] = { "vulkan" }; -#elif defined CAMU_RENDERER_DX11 +#elif defined NAUNET_ON_WINDOWS static const char *hwdevces[] = { "d3d11va" }; #elif defined CAMU_RENDERER_OPENGL -#ifdef NAUNET_ON_WINDOWS -static const char *hwdevces[] = { "d3d11va" }; -#else static const char *hwdevces[] = { "vaapi" }; #endif -#endif static s32 get_buffer2(AVCodecContext *context, AVFrame *pic, s32 flags) { @@ -277,7 +273,7 @@ static bool ff_decoder_init(struct camu_decoder *dec, struct camu_renderer *rend } const char *long_name = codec->long_name ? codec->long_name : codec->name; - s64 kbps = codecpar->bit_rate > 0 ? codecpar->bit_rate / 1000L : 0L; + s64 kbps = codecpar->bit_rate > 0 ? codecpar->bit_rate / 1000 : 0; al_log_info("ff_decoder", "Codec: %s (%s) %lldkbps.", codec->name, long_name, kbps); av->callback = callback; diff --git a/src/codec/ffmpeg/decoder.h b/src/codec/ffmpeg/decoder.h index f698a6d..aa9eb57 100644 --- a/src/codec/ffmpeg/decoder.h +++ b/src/codec/ffmpeg/decoder.h @@ -5,15 +5,13 @@ #include "../codec.h" -#ifndef CAMU_SINK_NO_VIDEO //#define CAMU_FF_DECODER_HWACCEL -#endif struct camu_ff_decoder { struct camu_decoder dec; AVCodecContext *codec_context; - struct camu_renderer *renderer; #ifdef CAMU_FF_DECODER_HWACCEL + struct camu_renderer *renderer; array(const AVCodec *) supported_hw_codecs; array(enum AVHWDeviceType) supported_hw_devices; AVBufferRef *hw_context; diff --git a/src/codec/ffmpeg/demuxer.c b/src/codec/ffmpeg/demuxer.c index 5cb3ceb..9764f58 100644 --- a/src/codec/ffmpeg/demuxer.c +++ b/src/codec/ffmpeg/demuxer.c @@ -54,8 +54,9 @@ static bool ff_demuxer_init(struct camu_demuxer *demux, struct cch_handle *handl // FFmpeg says the avio protocol configures "buffers and access patterns". // I think we already do enough buffering but, better access patterns for // network streams sounds like something we want. - if (avformat_open_input(&av->format_context, "file:", NULL, &opts) < 0) { - al_log_error("ff_demuxer", "Failed to open input."); + s32 ret = avformat_open_input(&av->format_context, "file:", NULL, &opts); + if (ret < 0) { + al_log_error("ff_demuxer", "Failed to open input (%s).", av_err2str(ret)); av_dict_free(&opts); goto err; } |