summaryrefslogtreecommitdiff
path: root/fftools/ffmpeg_hw.c
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2023-05-19 09:20:37 +0200
committerAnton Khirnov <anton@khirnov.net>2023-05-28 10:47:59 +0200
commitf15b20628675c72e3240352ff466e3ebc55a0702 (patch)
tree6d389140be76e974b58e562df67c04b65635b217 /fftools/ffmpeg_hw.c
parent760a9bd306a42c0e0e0ed0828d6d5e6078e7ced0 (diff)
fftools/ffmpeg_hw: move hw_device_setup_for_encode() to ffmpeg_enc
This function is entangled with encoder setup, so it is more encoding code rather than ffmpeg_hw code. This will allow making more encoder state private in the future.
Diffstat (limited to 'fftools/ffmpeg_hw.c')
-rw-r--r--fftools/ffmpeg_hw.c55
1 files changed, 0 insertions, 55 deletions
diff --git a/fftools/ffmpeg_hw.c b/fftools/ffmpeg_hw.c
index d28257a1d6..4a0b346fe1 100644
--- a/fftools/ffmpeg_hw.c
+++ b/fftools/ffmpeg_hw.c
@@ -297,61 +297,6 @@ void hw_device_free_all(void)
nb_hw_devices = 0;
}
-int hw_device_setup_for_encode(OutputStream *ost)
-{
- const AVCodecHWConfig *config;
- HWDevice *dev = NULL;
- AVBufferRef *frames_ref = NULL;
- int i;
-
- if (ost->filter) {
- frames_ref = av_buffersink_get_hw_frames_ctx(ost->filter->filter);
- if (frames_ref &&
- ((AVHWFramesContext*)frames_ref->data)->format ==
- ost->enc_ctx->pix_fmt) {
- // Matching format, will try to use hw_frames_ctx.
- } else {
- frames_ref = NULL;
- }
- }
-
- for (i = 0;; i++) {
- config = avcodec_get_hw_config(ost->enc_ctx->codec, i);
- if (!config)
- break;
-
- if (frames_ref &&
- config->methods & AV_CODEC_HW_CONFIG_METHOD_HW_FRAMES_CTX &&
- (config->pix_fmt == AV_PIX_FMT_NONE ||
- config->pix_fmt == ost->enc_ctx->pix_fmt)) {
- av_log(ost->enc_ctx, AV_LOG_VERBOSE, "Using input "
- "frames context (format %s) with %s encoder.\n",
- av_get_pix_fmt_name(ost->enc_ctx->pix_fmt),
- ost->enc_ctx->codec->name);
- ost->enc_ctx->hw_frames_ctx = av_buffer_ref(frames_ref);
- if (!ost->enc_ctx->hw_frames_ctx)
- return AVERROR(ENOMEM);
- return 0;
- }
-
- if (!dev &&
- config->methods & AV_CODEC_HW_CONFIG_METHOD_HW_DEVICE_CTX)
- dev = hw_device_get_by_type(config->device_type);
- }
-
- if (dev) {
- av_log(ost->enc_ctx, AV_LOG_VERBOSE, "Using device %s "
- "(type %s) with %s encoder.\n", dev->name,
- av_hwdevice_get_type_name(dev->type), ost->enc_ctx->codec->name);
- ost->enc_ctx->hw_device_ctx = av_buffer_ref(dev->device_ref);
- if (!ost->enc_ctx->hw_device_ctx)
- return AVERROR(ENOMEM);
- } else {
- // No device required, or no device available.
- }
- return 0;
-}
-
static int hwaccel_retrieve_data(AVCodecContext *avctx, AVFrame *input)
{
InputStream *ist = avctx->opaque;