[FFmpeg-devel] [PATCH] Fix printf usage in vhook
JonY
10walls
Thu Sep 4 06:54:48 CEST 2008
Stefano Sabatini wrote:
> On date Wednesday 2008-09-03 19:04:27 +0800, JonY encoded:
>> Patch fixes some undefined references to "please_use_av_log". Do change
>> the AV_LOG levels if inappropriate.
>>
>> Any ideas fix fprintfs writing to files?
>>> vhook/fish.c:369: fprintf(f, "P6 %d %d 255\n", width, height);
>>> vhook/ppm.c:287: fprintf( out, "P6\n%d %d\n255\n", width, height );
>
> You have to redefine the av_log() behaviour, setting the av_log callback
> function.
>
Do you have any suggestions where the callback should be pointed to?
>> Index: vhook/imlib2.c
>> ===================================================================
>> --- vhook/imlib2.c (revision 15172)
>> +++ vhook/imlib2.c (working copy)
>> @@ -215,21 +215,21 @@
>> ci->fileImage = av_strdup(optarg);
>> break;
>> case '?':
>> - fprintf(stderr, "Unrecognized argument '%s'\n", argv[optind]);
>> + av_log(NULL, AV_LOG_ERROR, "Unrecognized argument '%s'\n", argv[optind]);
>> return -1;
>> }
>> }
>>
>> if (ci->eval_colors&& !(ci->expr_R&& ci->expr_G&& ci->expr_B))
>> {
>> - fprintf(stderr, "You must specify expressions for all or no colors.\n");
>> + av_log(NULL, AV_LOG_ERROR, "You must specify expressions for all or no colors.\n");
>> return -1;
>> }
>>
>> if (ci->text || ci->file) {
>> ci->fn = imlib_load_font(font);
>> if (!ci->fn) {
>> - fprintf(stderr, "Failed to load font '%s'\n", font);
>> + av_log(NULL, AV_LOG_ERROR, "Failed to load font '%s'\n", font);
>> return -1;
>> }
>> imlib_context_set_font(ci->fn);
>> @@ -242,7 +242,7 @@
>>
>> if (ci->eval_colors)
>> {
>> - fprintf(stderr, "You must not specify both a color name and expressions for the colors.\n");
>> + av_log(NULL, AV_LOG_ERROR, "You must not specify both a color name and expressions for the colors.\n");
>> return -1;
>> }
>>
>> @@ -255,7 +255,7 @@
>> f = fopen("/usr/lib/X11/rgb.txt", "r");
>> }
>> if (!f) {
>> - fprintf(stderr, "Failed to find RGB color names file\n");
>> + av_log(NULL, AV_LOG_ERROR, "Failed to find RGB color names file\n");
>> return -1;
>> }
>> while (fgets(buff, sizeof(buff), f)) {
>> @@ -274,7 +274,7 @@
>> }
>> fclose(f);
>> if (!done) {
>> - fprintf(stderr, "Unable to find color '%s' in rgb.txt\n", color);
>> + av_log(NULL, AV_LOG_ERROR, "Unable to find color '%s' in rgb.txt\n", color);
>> return -1;
>> }
>> } else if (ci->eval_colors) {
>> Index: vhook/fish.c
>> ===================================================================
>> --- vhook/fish.c (revision 15172)
>> +++ vhook/fish.c (working copy)
>> @@ -155,7 +155,7 @@
>> case 't':
>> ci->threshold = atof(optarg) * 1000;
>> if (ci->threshold> 1000 || ci->threshold< 0) {
>> - fprintf(stderr, "Invalid threshold value '%s' (range is 0-1)\n", optarg);
>> + av_log(NULL, AV_LOG_ERROR, "Invalid threshold value '%s' (range is 0-1)\n", optarg);
>> return -1;
>> }
>> break;
>> @@ -169,20 +169,20 @@
>> ci->dir = av_strdup(optarg);
>> break;
>> default:
>> - fprintf(stderr, "Unrecognized argument '%s'\n", argv[optind]);
>> + av_log(NULL, AV_LOG_ERROR, "Unrecognized argument '%s'\n", argv[optind]);
>> return -1;
>> }
>> }
>>
>> - fprintf(stderr, "Fish detector configured:\n");
>> - fprintf(stderr, " HSV range: %d,%d,%d - %d,%d,%d\n",
>> + av_log(NULL, AV_LOG_INFO, "Fish detector configured:\n");
>> + av_log(NULL, AV_LOG_INFO, " HSV range: %d,%d,%d - %d,%d,%d\n",
>> ci->dark.h,
>> ci->dark.s,
>> ci->dark.v,
>> ci->bright.h,
>> ci->bright.s,
>> ci->bright.v);
>> - fprintf(stderr, " Threshold is %d%% pixels\n", ci->threshold / 10);
>> + av_log(NULL, AV_LOG_INFO, " Threshold is %d%% pixels\n", ci->threshold / 10);
>>
>>
>> return 0;
>> @@ -234,7 +234,7 @@
>> int rowsize = picture->linesize[0];
>>
>> #if 0
>> - printf("pix_fmt = %d, width = %d, pts = %lld, ci->next_pts = %lld\n",
>> + av_log(NULL, AV_LOG_DEBUG, "pix_fmt = %d, width = %d, pts = %lld, ci->next_pts = %lld\n",
>> pix_fmt, width, pts, ci->next_pts);
>> #endif
>>
>> @@ -281,7 +281,7 @@
>> get_hsv(&hsv, r, g, b);
>>
>> if (ci->debug> 1)
>> - fprintf(stderr, "(%d,%d,%d) -> (%d,%d,%d)\n",
>> + av_log(NULL, AV_LOG_DEBUG, "(%d,%d,%d) -> (%d,%d,%d)\n",
>> r,g,b,hsv.h,hsv.s,hsv.v);
>>
>>
>> @@ -306,7 +306,7 @@
>> }
>>
>> if (ci->debug)
>> - fprintf(stderr, "Fish: Inrange=%d of %d = %d threshold\n", inrange, pixcnt, 1000 * inrange / pixcnt);
>> + av_log(NULL, AV_LOG_INFO, "Fish: Inrange=%d of %d = %d threshold\n", inrange, pixcnt, 1000 * inrange / pixcnt);
>>
>> if (inrange * 1000 / pixcnt>= ci->threshold) {
>> /* Save to file */
>> Index: vhook/null.c
>> ===================================================================
>> --- vhook/null.c (revision 15172)
>> +++ vhook/null.c (working copy)
>> @@ -50,7 +50,7 @@
>>
>> int Configure(void **ctxp, int argc, char *argv[])
>> {
>> - fprintf(stderr, "Called with argc=%d\n", argc);
>> + av_log(NULL, AV_LOG_DEBUG, "Called with argc=%d\n", argc);
>>
>> *ctxp = av_mallocz(sizeof(ContextInfo));
>> return 0;
>
> As you may know VHOOK is harshly *deprecated*, nonetheless since we
> don't know how much time libavfilter will stay in the limbo, maybe it
> would still make sense to apply this.
>
> Regards.
Thanks, I know its depreciated, but I don't know why the errors appeared
now, just trying to correct it.
More information about the ffmpeg-devel
mailing list