[FFmpeg-devel] [PATCH] add context to av_log() calls

Michael Niedermayer michaelni
Mon Feb 16 17:20:56 CET 2009


On Mon, Feb 16, 2009 at 05:13:15PM +0100, Benoit Fouet wrote:
> Hi,
> 
> On 02/16/2009 05:00 PM, Michael Niedermayer wrote:
> > On Mon, Feb 16, 2009 at 02:35:23PM +0100, Benoit Fouet wrote:
[...]
> >> Index: libavformat/avidec.c
> >> ===================================================================
> >> --- libavformat/avidec.c	(revision 17366)
> >> +++ libavformat/avidec.c	(working copy)
> >> @@ -87,7 +87,7 @@ static void print_tag(const char *str, u
> >>  }
> >>  #endif
> >>  
> >> -static int get_riff(AVIContext *avi, ByteIOContext *pb)
> >> +static int get_riff(AVFormatContext *s, AVIContext *avi, ByteIOContext *pb)
> >>     
> >
> > this seems redundant
> >
> >
> >   
> 
> I'm not sure I understand. Is there an av_log()-friendly context already
> available in one of the two parameters ?

AVIContext *avi = s->priv_data;
so pasing AVIContext seems redundant


[...]
> 
> >> Index: libavformat/utils.c
> >> ===================================================================
> >> --- libavformat/utils.c	(revision 17366)
> >> +++ libavformat/utils.c	(working copy)
> >>     
> > [...]
> >   
> >> @@ -2757,15 +2757,15 @@ static void dump_stream_format(AVFormatC
> >>      AVStream *st = ic->streams[i];
> >>      int g = av_gcd(st->time_base.num, st->time_base.den);
> >>      avcodec_string(buf, sizeof(buf), st->codec, is_output);
> >> -    av_log(NULL, AV_LOG_INFO, "    Stream #%d.%d", index, i);
> >> +    av_log(ic, AV_LOG_INFO, "    Stream #%d.%d", index, i);
> >>      /* the pid is an important information, so we display it */
> >>      /* XXX: add a generic system */
> >>      if (flags & AVFMT_SHOW_IDS)
> >> -        av_log(NULL, AV_LOG_INFO, "[0x%x]", st->id);
> >> +        av_log(ic, AV_LOG_INFO, "[0x%x]", st->id);
> >>      if (strlen(st->language) > 0)
> >> -        av_log(NULL, AV_LOG_INFO, "(%s)", st->language);
> >> -    av_log(NULL, AV_LOG_DEBUG, ", %d/%d", st->time_base.num/g, st->time_base.den/g);
> >> -    av_log(NULL, AV_LOG_INFO, ": %s", buf);
> >> +        av_log(ic, AV_LOG_INFO, "(%s)", st->language);
> >> +    av_log(ic, AV_LOG_DEBUG, ", %d/%d", st->time_base.num/g, st->time_base.den/g);
> >> +    av_log(ic, AV_LOG_INFO, ": %s", buf);
> >>      if (st->sample_aspect_ratio.num && // default
> >>          av_cmp_q(st->sample_aspect_ratio, st->codec->sample_aspect_ratio)) {
> >>          AVRational display_aspect_ratio;
> >> @@ -2773,19 +2773,19 @@ static void dump_stream_format(AVFormatC
> >>                    st->codec->width*st->sample_aspect_ratio.num,
> >>                    st->codec->height*st->sample_aspect_ratio.den,
> >>                    1024*1024);
> >> -        av_log(NULL, AV_LOG_INFO, ", PAR %d:%d DAR %d:%d",
> >> +        av_log(ic, AV_LOG_INFO, ", PAR %d:%d DAR %d:%d",
> >>                   st->sample_aspect_ratio.num, st->sample_aspect_ratio.den,
> >>                   display_aspect_ratio.num, display_aspect_ratio.den);
> >>      }
> >>      if(st->codec->codec_type == CODEC_TYPE_VIDEO){
> >>          if(st->r_frame_rate.den && st->r_frame_rate.num)
> >> -            av_log(NULL, AV_LOG_INFO, ", %5.2f tb(r)", av_q2d(st->r_frame_rate));
> >> +            av_log(ic, AV_LOG_INFO, ", %5.2f tb(r)", av_q2d(st->r_frame_rate));
> >>  /*      else if(st->time_base.den && st->time_base.num)
> >> -            av_log(NULL, AV_LOG_INFO, ", %5.2f tb(m)", 1/av_q2d(st->time_base));*/
> >> +            av_log(ic, AV_LOG_INFO, ", %5.2f tb(m)", 1/av_q2d(st->time_base));*/
> >>          else
> >> -            av_log(NULL, AV_LOG_INFO, ", %5.2f tb(c)", 1/av_q2d(st->codec->time_base));
> >> +            av_log(ic, AV_LOG_INFO, ", %5.2f tb(c)", 1/av_q2d(st->codec->time_base));
> >>      }
> >> -    av_log(NULL, AV_LOG_INFO, "\n");
> >> +    av_log(ic, AV_LOG_INFO, "\n");
> >>  }
> >>     
> >
> > what effect does this have on the output of this function?
> >
> >
> >   
> 
> it sucks ! :)

thats why i asked :)


> 
> [mov,mp4,m4a,3gp,3g2,mj2 @ 0x8d9fb60]Input #0, mov,mp4,m4a,3gp,3g2,mj2,
> from '/home/fouet/tools/samples/test.3gp':
> [mov,mp4,m4a,3gp,3g2,mj2 @ 0x8d9fb60]  Duration: 00:01:41.76, start:
> 0.000000, bitrate: 734 kb/s
> [mov,mp4,m4a,3gp,3g2,mj2 @ 0x8d9fb60]    Stream #0.0(eng): Video: mpeg4,
> yuv420p, 480x270 [PAR 1:1 DAR 16:9], 29.97 tb(r)
> [3gp @ 0x8daf560]Output #0, 3gp, to 'out.3gp':
> [3gp @ 0x8daf560]    Stream #0.0(eng): Video: mpeg4, yuv420p, 480x270
> [PAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 29.97 tb(c)
> 
> I guess we can forget that hunk then... and the following one, of course.
>  
> >>  void dump_format(AVFormatContext *ic,
> >> @@ -2795,13 +2795,13 @@ void dump_format(AVFormatContext *ic,
> >>  {
> >>      int i;
> >>  
> >> -    av_log(NULL, AV_LOG_INFO, "%s #%d, %s, %s '%s':\n",
> >> +    av_log(ic, AV_LOG_INFO, "%s #%d, %s, %s '%s':\n",
> >>              is_output ? "Output" : "Input",
> >>              index,
> >>              is_output ? ic->oformat->name : ic->iformat->name,
> >>              is_output ? "to" : "from", url);
> >>      if (!is_output) {
> >> -        av_log(NULL, AV_LOG_INFO, "  Duration: ");
> >> +        av_log(ic, AV_LOG_INFO, "  Duration: ");
> >>          if (ic->duration != AV_NOPTS_VALUE) {
> >>              int hours, mins, secs, us;
> >>              secs = ic->duration / AV_TIME_BASE;
> >> @@ -2810,31 +2810,31 @@ void dump_format(AVFormatContext *ic,
> >>              secs %= 60;
> >>              hours = mins / 60;
> >>              mins %= 60;
> >> -            av_log(NULL, AV_LOG_INFO, "%02d:%02d:%02d.%02d", hours, mins, secs,
> >> +            av_log(ic, AV_LOG_INFO, "%02d:%02d:%02d.%02d", hours, mins, secs,
> >>                     (100 * us) / AV_TIME_BASE);
> >>          } else {
> >> -            av_log(NULL, AV_LOG_INFO, "N/A");
> >> +            av_log(ic, AV_LOG_INFO, "N/A");
> >>          }
> >>          if (ic->start_time != AV_NOPTS_VALUE) {
> >>              int secs, us;
> >> -            av_log(NULL, AV_LOG_INFO, ", start: ");
> >> +            av_log(ic, AV_LOG_INFO, ", start: ");
> >>              secs = ic->start_time / AV_TIME_BASE;
> >>              us = ic->start_time % AV_TIME_BASE;
> >> -            av_log(NULL, AV_LOG_INFO, "%d.%06d",
> >> +            av_log(ic, AV_LOG_INFO, "%d.%06d",
> >>                     secs, (int)av_rescale(us, 1000000, AV_TIME_BASE));
> >>          }
> >> -        av_log(NULL, AV_LOG_INFO, ", bitrate: ");
> >> +        av_log(ic, AV_LOG_INFO, ", bitrate: ");
> >>          if (ic->bit_rate) {
> >> -            av_log(NULL, AV_LOG_INFO,"%d kb/s", ic->bit_rate / 1000);
> >> +            av_log(ic, AV_LOG_INFO,"%d kb/s", ic->bit_rate / 1000);
> >>          } else {
> >> -            av_log(NULL, AV_LOG_INFO, "N/A");
> >> +            av_log(ic, AV_LOG_INFO, "N/A");
> >>          }
> >> -        av_log(NULL, AV_LOG_INFO, "\n");
> >> +        av_log(ic, AV_LOG_INFO, "\n");
> >>      }
> >>      if(ic->nb_programs) {
> >>          int j, k;
> >>          for(j=0; j<ic->nb_programs; j++) {
> >> -            av_log(NULL, AV_LOG_INFO, "  Program %d %s\n", ic->programs[j]->id,
> >> +            av_log(ic, AV_LOG_INFO, "  Program %d %s\n", ic->programs[j]->id,
> >>                     ic->programs[j]->name ? ic->programs[j]->name : "");
> >>              for(k=0; k<ic->programs[j]->nb_stream_indexes; k++)
> >>                  dump_stream_format(ic, ic->programs[j]->stream_index[k], index, is_output);
> >>
> >>     
> >
> > same
> >
> >
> >   
> 
> see above
> 
> >> Index: libavformat/mm.c
> >> ===================================================================
> >> --- libavformat/mm.c	(revision 17366)
> >> +++ libavformat/mm.c	(working copy)
> >> @@ -168,7 +168,7 @@ static int mm_read_packet(AVFormatContex
> >>              return 0;
> >>  
> >>          default :
> >> -            av_log(NULL, AV_LOG_INFO, "mm: unknown chunk type 0x%x\n", type);
> >> +            av_log(s, AV_LOG_INFO, "mm: unknown chunk type 0x%x\n", type);
> >>     
> >                                        ^^
> > redundant
> >
> >   
> 
> how about that one ?
> 
> Index: libavformat/mm.c
> ===================================================================
> --- libavformat/mm.c    (revision 17366)
> +++ libavformat/mm.c    (working copy)
> @@ -168,7 +168,7 @@ static int mm_read_packet(AVFormatContex
>              return 0;
>  
>          default :
> -            av_log(NULL, AV_LOG_INFO, "mm: unknown chunk type 0x%x\n",
> type);
> +            av_log(s, AV_LOG_INFO, "unknown chunk type 0x%x\n", type);
>              url_fseek(pb, length, SEEK_CUR);
>          }
>      }
> 

ok

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

No human being will ever know the Truth, for even if they happen to say it
by chance, they would not even known they had done so. -- Xenophanes
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20090216/3fa8c529/attachment.pgp>



More information about the ffmpeg-devel mailing list