1- std::unordered_map<int , std::string> beam_logging_level_fmap = {
2- { AV_LOG_QUIET, " quiet" },
3- { AV_LOG_PANIC, " panic" },
4- { AV_LOG_FATAL, " fatal" },
5- { AV_LOG_ERROR, " error" },
6- { AV_LOG_WARNING, " warning" },
7- { AV_LOG_INFO, " info" },
8- { AV_LOG_VERBOSE, " verbose" },
9- { AV_LOG_DEBUG, " debug" },
10- { AV_LOG_TRACE, " trace" }
11- };
1+ #include " node_api.h"
2+ #include < stdio.h>
3+ #include " log.h"
4+
5+ extern " C" {
6+ #include < libavutil/log.h>
7+ }
128
139const beamEnum* beam_logging_level = new beamEnum(beam_logging_level_fmap);
1410
@@ -65,56 +61,51 @@ napi_value logging(napi_env env, napi_callback_info info) {
6561 return result;
6662}
6763
68- n_api_value set_logging_callback (napi_env env, napi_callback_info info){
69-
70- napi_threadsafe_function status;
71- napi_value result;
72-
73- napi_value args[1 ];
74- size_t argc = 1 ;
75- status = napi_get_cb_info (env, info, &argc, args, nullptr , nullptr );
76- CHECK_STATUS;
77-
78- if (argc != 1 ) {
79- status = napi_throw_error (env, nullptr , " One argumentis required to set logging callback." );
80- return nullptr ;
81- }
82-
83- napi_value callback = args[0 ];
84- napi_valuetype t;
85- status = napi_typeof (env, callback, &t);
86- CHECK_STATUS;
87-
88- if (t != napi_function) {
89- status = napi_throw_type_error (env, nullptr , " Callback argument should be a function." );
90- return nullptr ;
91- }
92-
93- // Inspired from https://www.ffmpeg.org/doxygen/0.6/log_8c-source.html
94- void av_log_custom_callback (void * ptr, int level, const char * fmt, va_list vl){
95- static int print_prefix=1 ;
96- static int count;
97- static char prev[1024 ];
98- char line[1024 ];
99- static const uint8_t color[]={0x41 ,0x41 ,0x11 ,0x03 ,9 ,9 ,9 };
100- AVClass* avc= ptr ? *(AVClass**)ptr : NULL ;
101- if (level>av_log_level)
102- return ;
103-
104- napi_value arg;
105- status = napi_create_string_utf8 (env, line, &arg);
106- CHECK_STATUS;
107-
108- napi_value* argv = &arg;
109- size_t argc = 1 ;
110- napi_value return_val;
111-
112- status = napi_call_function (env, global, callback, argc, argv, &return_val);
113- CHECK_STATUS;
114- }
115-
116-
117- CHECK_STATUS;
118-
119-
120- }
64+ // napi_value setLoggingCallback(napi_env env, napi_callback_info info){
65+ //
66+ // napi_threadsafe_function status;
67+ //
68+ // napi_value args[1];
69+ // size_t argc = 1;
70+ // status = napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
71+ // CHECK_STATUS;
72+ //
73+ // if (argc != 1) {
74+ // status = napi_throw_error(env, nullptr, "One argumentis required to set logging callback.");
75+ // return nullptr;
76+ // }
77+ //
78+ // napi_value callback = args[0];
79+ // napi_valuetype t;
80+ // status = napi_typeof(env, callback, &t);
81+ // CHECK_STATUS;
82+ //
83+ // if (t != napi_function) {
84+ // status = napi_throw_type_error(env, nullptr, "Callback argument should be a function.");
85+ // return nullptr;
86+ // }
87+ //
88+ // // Inspired from https://www.ffmpeg.org/doxygen/0.6/log_8c-source.html
89+ // void av_log_custom_callback(void* ptr, int level, const char* fmt, va_list vl){
90+ // static int print_prefix=1;
91+ // static int count;
92+ // static char prev[1024];
93+ // char line[1024];
94+ // static const uint8_t color[]={0x41,0x41,0x11,0x03,9,9,9};
95+ // AVClass* avc= ptr ? *(AVClass**)ptr : NULL;
96+ // if(level>av_log_level)
97+ // return;
98+ //
99+ // napi_value arg;
100+ // status = napi_create_string_utf8(env, line, &arg);
101+ // CHECK_STATUS;
102+ //
103+ // napi_value* argv = &arg;
104+ // size_t argc = 1;
105+ // napi_value return_val;
106+ //
107+ // status = napi_call_function(env, global, callback, argc, argv, &return_val);
108+ // CHECK_STATUS;
109+ // }
110+ // av_log_set_callback(av_log_custom_callback);
111+ // }
0 commit comments