Commit 80a4e6a4 authored by Alexander Kravchenko's avatar Alexander Kravchenko Committed by Diego Biurrun

amf: Replace writer_id option with LIBAV_AMF_WRITER_ID constant

AMFTraceWriter is an abstraction to configure how AMF outputs its logs
for the current process and can be configured to output different levels
of trace output. If multiple LibavWriter objects are used in one process,
there will be duplication of output in av_log. Use a constant writer_id
to prevent this scenario.
Signed-off-by: 's avatarDiego Biurrun <diego@biurrun.de>
parent 31a53ab3
...@@ -46,6 +46,8 @@ ...@@ -46,6 +46,8 @@
#include <dlfcn.h> #include <dlfcn.h>
#endif #endif
#define LIBAV_AMF_WRITER_ID L"libav_log"
#define PTS_PROP L"PtsProp" #define PTS_PROP L"PtsProp"
const enum AVPixelFormat ff_amf_pix_fmts[] = { const enum AVPixelFormat ff_amf_pix_fmts[] = {
...@@ -171,8 +173,8 @@ static int amf_init_context(AVCodecContext *avctx) ...@@ -171,8 +173,8 @@ static int amf_init_context(AVCodecContext *avctx)
// connect AMF logger to av_log // connect AMF logger to av_log
ctx->tracer.vtbl = &tracer_vtbl; ctx->tracer.vtbl = &tracer_vtbl;
ctx->tracer.avctx = avctx; ctx->tracer.avctx = avctx;
ctx->trace->pVtbl->RegisterWriter(ctx->trace, ctx->writer_id, (AMFTraceWriter*)&ctx->tracer, 1); ctx->trace->pVtbl->RegisterWriter(ctx->trace, LIBAV_AMF_WRITER_ID,(AMFTraceWriter *)&ctx->tracer, 1);
ctx->trace->pVtbl->SetWriterLevel(ctx->trace, ctx->writer_id, AMF_TRACE_TRACE); ctx->trace->pVtbl->SetWriterLevel(ctx->trace, LIBAV_AMF_WRITER_ID, AMF_TRACE_TRACE);
res = ctx->factory->pVtbl->CreateContext(ctx->factory, &ctx->context); res = ctx->factory->pVtbl->CreateContext(ctx->factory, &ctx->context);
AMF_RETURN_IF_FALSE(ctx, res == AMF_OK, AVERROR_UNKNOWN, "CreateContext() failed with error %d\n", res); AMF_RETURN_IF_FALSE(ctx, res == AMF_OK, AVERROR_UNKNOWN, "CreateContext() failed with error %d\n", res);
...@@ -283,7 +285,7 @@ int av_cold ff_amf_encode_close(AVCodecContext *avctx) ...@@ -283,7 +285,7 @@ int av_cold ff_amf_encode_close(AVCodecContext *avctx)
av_buffer_unref(&ctx->hw_frames_ctx); av_buffer_unref(&ctx->hw_frames_ctx);
if (ctx->trace) { if (ctx->trace) {
ctx->trace->pVtbl->UnregisterWriter(ctx->trace, ctx->writer_id); ctx->trace->pVtbl->UnregisterWriter(ctx->trace, LIBAV_AMF_WRITER_ID);
} }
if (ctx->library) { if (ctx->library) {
dlclose(ctx->library); dlclose(ctx->library);
......
...@@ -80,7 +80,6 @@ typedef struct AmfContext { ...@@ -80,7 +80,6 @@ typedef struct AmfContext {
// common encoder options // common encoder options
int log_to_dbg; int log_to_dbg;
char *writer_id;
// Static options, have to be set before Init() call // Static options, have to be set before Init() call
int usage; int usage;
...@@ -152,7 +151,6 @@ extern const enum AVPixelFormat ff_amf_pix_fmts[]; ...@@ -152,7 +151,6 @@ extern const enum AVPixelFormat ff_amf_pix_fmts[];
} }
#define AMF_COMMON_OPTIONS \ #define AMF_COMMON_OPTIONS \
{ "log_to_dbg", "Enable AMF logging to debug output", OFFSET(log_to_dbg), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 1, VE }, \ { "log_to_dbg", "Enable AMF logging to debug output", OFFSET(log_to_dbg), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 1, VE } \
{ "writer_id", "Enable AMF logging to writer id", OFFSET(writer_id), AV_OPT_TYPE_STRING, { .str = "libavcodec" }, 0, 1, VE } \
#endif //AVCODEC_AMFENC_H #endif //AVCODEC_AMFENC_H
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment