Re: [FFmpeg-devel] [PATCH] ffprobe: print some basic information about avframe side data

2014-07-30 Thread Michael Niedermayer
On Wed, Jul 30, 2014 at 05:21:15PM +0200, Stefano Sabatini wrote:
> On date Wednesday 2014-07-30 15:21:06 +0200, Michael Niedermayer encoded:
> > Signed-off-by: Michael Niedermayer 
> > ---
> >  doc/ffprobe.xsd |   11 +++
> >  ffprobe.c   |   21 -
> >  2 files changed, 31 insertions(+), 1 deletion(-)
> > 
> > diff --git a/doc/ffprobe.xsd b/doc/ffprobe.xsd
> > index 9ef9ecb..e0e9179 100644
> > --- a/doc/ffprobe.xsd
> > +++ b/doc/ffprobe.xsd
> > @@ -55,6 +55,7 @@
> >  
> >
> >   > maxOccurs="unbounded"/>
> > + > type="ffprobe:frameSideDataListType"   minOccurs="0" maxOccurs="1" />
> >
> >  
> > > use="required"/>
> > @@ -91,6 +92,16 @@
> >
> >  
> >  
> > +
> > +
> > + > minOccurs="1" maxOccurs="unbounded"/>
> 
> I'd say side_data for consistency
> 
> > +
> > +
> > +
> > + > type="xsd:string"/>
> > + > />
> > +
> > +
> >  
> > > fixed="subtitle" use="required"/>
> >
> > diff --git a/ffprobe.c b/ffprobe.c
> > index 1329466..c9fc79d 100644
> > --- a/ffprobe.c
> > +++ b/ffprobe.c
> > @@ -123,6 +123,8 @@ typedef enum {
> >  SECTION_ID_FRAME,
> >  SECTION_ID_FRAMES,
> >  SECTION_ID_FRAME_TAGS,
> 
> > +SECTION_ID_FRAME_SIDEDATA_LIST,
> > +SECTION_ID_FRAME_SIDEDATA,
> 
> same here SIDE_DATA*
> 
> >  SECTION_ID_LIBRARY_VERSION,
> >  SECTION_ID_LIBRARY_VERSIONS,
> >  SECTION_ID_PACKET,
> > @@ -152,8 +154,10 @@ static struct section sections[] = {
> >  [SECTION_ID_FORMAT] = { SECTION_ID_FORMAT, "format", 0, { 
> > SECTION_ID_FORMAT_TAGS, -1 } },
> >  [SECTION_ID_FORMAT_TAGS] ={ SECTION_ID_FORMAT_TAGS, "tags", 
> > SECTION_FLAG_HAS_VARIABLE_FIELDS, { -1 }, .element_name = "tag", 
> > .unique_name = "format_tags" },
> >  [SECTION_ID_FRAMES] = { SECTION_ID_FRAMES, "frames", 
> > SECTION_FLAG_IS_ARRAY, { SECTION_ID_FRAME, SECTION_ID_SUBTITLE, -1 } },
> > -[SECTION_ID_FRAME] =  { SECTION_ID_FRAME, "frame", 0, { 
> > SECTION_ID_FRAME_TAGS, -1 } },
> > +[SECTION_ID_FRAME] =  { SECTION_ID_FRAME, "frame", 0, { 
> > SECTION_ID_FRAME_TAGS, SECTION_ID_FRAME_SIDEDATA_LIST, -1 } },
> >  [SECTION_ID_FRAME_TAGS] = { SECTION_ID_FRAME_TAGS, "tags", 
> > SECTION_FLAG_HAS_VARIABLE_FIELDS, { -1 }, .element_name = "tag", 
> > .unique_name = "frame_tags" },
> > +[SECTION_ID_FRAME_SIDEDATA_LIST] ={ SECTION_ID_FRAME_SIDEDATA_LIST, 
> > "sidedata_list", SECTION_FLAG_IS_ARRAY, { SECTION_ID_FRAME_SIDEDATA, -1 } },
> > +[SECTION_ID_FRAME_SIDEDATA] = { SECTION_ID_FRAME_SIDEDATA, 
> > "sidedata", 0, { -1 } },
> >  [SECTION_ID_LIBRARY_VERSIONS] =   { SECTION_ID_LIBRARY_VERSIONS, 
> > "library_versions", SECTION_FLAG_IS_ARRAY, { SECTION_ID_LIBRARY_VERSION, -1 
> > } },
> >  [SECTION_ID_LIBRARY_VERSION] ={ SECTION_ID_LIBRARY_VERSION, 
> > "library_version", 0, { -1 } },
> >  [SECTION_ID_PACKETS] ={ SECTION_ID_PACKETS, "packets", 
> > SECTION_FLAG_IS_ARRAY, { SECTION_ID_PACKET, -1} },
> > @@ -1722,6 +1726,7 @@ static void show_frame(WriterContext *w, AVFrame 
> > *frame, AVStream *stream,
> >  {
> >  AVBPrint pbuf;
> >  const char *s;
> > +int i;
> >  
> >  av_bprint_init(&pbuf, 1, AV_BPRINT_SIZE_UNLIMITED);
> >  
> > @@ -1784,6 +1789,20 @@ static void show_frame(WriterContext *w, AVFrame 
> > *frame, AVStream *stream,
> >  }
> >  if (do_show_frame_tags)
> >  show_tags(w, av_frame_get_metadata(frame), SECTION_ID_FRAME_TAGS);
> > +if (frame->nb_side_data) {
> > +writer_print_section_header(w, SECTION_ID_FRAME_SIDEDATA_LIST);
> > +for (i = 0; i < frame->nb_side_data; i++) {
> > +AVFrameSideData *sd = frame->side_data[i];
> > +const char *name;
> > +
> > +writer_print_section_header(w, SECTION_ID_FRAME_SIDEDATA);
> > +name = av_frame_side_data_name(sd->type);
> > +print_str("side_data_type", name ? name : "unknown");
> > +print_int("side_data_size", sd->size);
> > +writer_print_section_footer(w);
> > +}
> > +writer_print_section_footer(w);
> > +}
> >  
> >  writer_print_section_footer(w);
> 
> LGTM otherwise, thanks.

sidedatas renamed

applied

thanks

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

Into a blind darkness they enter who follow after the Ignorance,
they as if into a greater darkness enter who devote themselves
to the Knowledge alone. -- Isha Upanishad


signature.asc
Description: Digital signature
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH] ffprobe: print some basic information about avframe side data

2014-07-30 Thread Stefano Sabatini
On date Wednesday 2014-07-30 15:21:06 +0200, Michael Niedermayer encoded:
> Signed-off-by: Michael Niedermayer 
> ---
>  doc/ffprobe.xsd |   11 +++
>  ffprobe.c   |   21 -
>  2 files changed, 31 insertions(+), 1 deletion(-)
> 
> diff --git a/doc/ffprobe.xsd b/doc/ffprobe.xsd
> index 9ef9ecb..e0e9179 100644
> --- a/doc/ffprobe.xsd
> +++ b/doc/ffprobe.xsd
> @@ -55,6 +55,7 @@
>  
>
>   maxOccurs="unbounded"/>
> + type="ffprobe:frameSideDataListType"   minOccurs="0" maxOccurs="1" />
>
>  
>
> @@ -91,6 +92,16 @@
>
>  
>  
> +
> +
> + minOccurs="1" maxOccurs="unbounded"/>

I'd say side_data for consistency

> +
> +
> +
> +
> +
> +
> +
>  
> fixed="subtitle" use="required"/>
>
> diff --git a/ffprobe.c b/ffprobe.c
> index 1329466..c9fc79d 100644
> --- a/ffprobe.c
> +++ b/ffprobe.c
> @@ -123,6 +123,8 @@ typedef enum {
>  SECTION_ID_FRAME,
>  SECTION_ID_FRAMES,
>  SECTION_ID_FRAME_TAGS,

> +SECTION_ID_FRAME_SIDEDATA_LIST,
> +SECTION_ID_FRAME_SIDEDATA,

same here SIDE_DATA*

>  SECTION_ID_LIBRARY_VERSION,
>  SECTION_ID_LIBRARY_VERSIONS,
>  SECTION_ID_PACKET,
> @@ -152,8 +154,10 @@ static struct section sections[] = {
>  [SECTION_ID_FORMAT] = { SECTION_ID_FORMAT, "format", 0, { 
> SECTION_ID_FORMAT_TAGS, -1 } },
>  [SECTION_ID_FORMAT_TAGS] ={ SECTION_ID_FORMAT_TAGS, "tags", 
> SECTION_FLAG_HAS_VARIABLE_FIELDS, { -1 }, .element_name = "tag", .unique_name 
> = "format_tags" },
>  [SECTION_ID_FRAMES] = { SECTION_ID_FRAMES, "frames", 
> SECTION_FLAG_IS_ARRAY, { SECTION_ID_FRAME, SECTION_ID_SUBTITLE, -1 } },
> -[SECTION_ID_FRAME] =  { SECTION_ID_FRAME, "frame", 0, { 
> SECTION_ID_FRAME_TAGS, -1 } },
> +[SECTION_ID_FRAME] =  { SECTION_ID_FRAME, "frame", 0, { 
> SECTION_ID_FRAME_TAGS, SECTION_ID_FRAME_SIDEDATA_LIST, -1 } },
>  [SECTION_ID_FRAME_TAGS] = { SECTION_ID_FRAME_TAGS, "tags", 
> SECTION_FLAG_HAS_VARIABLE_FIELDS, { -1 }, .element_name = "tag", .unique_name 
> = "frame_tags" },
> +[SECTION_ID_FRAME_SIDEDATA_LIST] ={ SECTION_ID_FRAME_SIDEDATA_LIST, 
> "sidedata_list", SECTION_FLAG_IS_ARRAY, { SECTION_ID_FRAME_SIDEDATA, -1 } },
> +[SECTION_ID_FRAME_SIDEDATA] = { SECTION_ID_FRAME_SIDEDATA, 
> "sidedata", 0, { -1 } },
>  [SECTION_ID_LIBRARY_VERSIONS] =   { SECTION_ID_LIBRARY_VERSIONS, 
> "library_versions", SECTION_FLAG_IS_ARRAY, { SECTION_ID_LIBRARY_VERSION, -1 } 
> },
>  [SECTION_ID_LIBRARY_VERSION] ={ SECTION_ID_LIBRARY_VERSION, 
> "library_version", 0, { -1 } },
>  [SECTION_ID_PACKETS] ={ SECTION_ID_PACKETS, "packets", 
> SECTION_FLAG_IS_ARRAY, { SECTION_ID_PACKET, -1} },
> @@ -1722,6 +1726,7 @@ static void show_frame(WriterContext *w, AVFrame 
> *frame, AVStream *stream,
>  {
>  AVBPrint pbuf;
>  const char *s;
> +int i;
>  
>  av_bprint_init(&pbuf, 1, AV_BPRINT_SIZE_UNLIMITED);
>  
> @@ -1784,6 +1789,20 @@ static void show_frame(WriterContext *w, AVFrame 
> *frame, AVStream *stream,
>  }
>  if (do_show_frame_tags)
>  show_tags(w, av_frame_get_metadata(frame), SECTION_ID_FRAME_TAGS);
> +if (frame->nb_side_data) {
> +writer_print_section_header(w, SECTION_ID_FRAME_SIDEDATA_LIST);
> +for (i = 0; i < frame->nb_side_data; i++) {
> +AVFrameSideData *sd = frame->side_data[i];
> +const char *name;
> +
> +writer_print_section_header(w, SECTION_ID_FRAME_SIDEDATA);
> +name = av_frame_side_data_name(sd->type);
> +print_str("side_data_type", name ? name : "unknown");
> +print_int("side_data_size", sd->size);
> +writer_print_section_footer(w);
> +}
> +writer_print_section_footer(w);
> +}
>  
>  writer_print_section_footer(w);

LGTM otherwise, thanks.
-- 
FFmpeg = Fascinating Fundamental Maxi Philosophical Emblematic Geek
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


[FFmpeg-devel] [PATCH] ffprobe: print some basic information about avframe side data

2014-07-30 Thread Michael Niedermayer
Signed-off-by: Michael Niedermayer 
---
 doc/ffprobe.xsd |   11 +++
 ffprobe.c   |   21 -
 2 files changed, 31 insertions(+), 1 deletion(-)

diff --git a/doc/ffprobe.xsd b/doc/ffprobe.xsd
index 9ef9ecb..e0e9179 100644
--- a/doc/ffprobe.xsd
+++ b/doc/ffprobe.xsd
@@ -55,6 +55,7 @@
 
   
 
+
   
 
   
@@ -91,6 +92,16 @@
   
 
 
+
+
+
+
+
+
+
+
+
+
 
   
   
diff --git a/ffprobe.c b/ffprobe.c
index 1329466..c9fc79d 100644
--- a/ffprobe.c
+++ b/ffprobe.c
@@ -123,6 +123,8 @@ typedef enum {
 SECTION_ID_FRAME,
 SECTION_ID_FRAMES,
 SECTION_ID_FRAME_TAGS,
+SECTION_ID_FRAME_SIDEDATA_LIST,
+SECTION_ID_FRAME_SIDEDATA,
 SECTION_ID_LIBRARY_VERSION,
 SECTION_ID_LIBRARY_VERSIONS,
 SECTION_ID_PACKET,
@@ -152,8 +154,10 @@ static struct section sections[] = {
 [SECTION_ID_FORMAT] = { SECTION_ID_FORMAT, "format", 0, { 
SECTION_ID_FORMAT_TAGS, -1 } },
 [SECTION_ID_FORMAT_TAGS] ={ SECTION_ID_FORMAT_TAGS, "tags", 
SECTION_FLAG_HAS_VARIABLE_FIELDS, { -1 }, .element_name = "tag", .unique_name = 
"format_tags" },
 [SECTION_ID_FRAMES] = { SECTION_ID_FRAMES, "frames", 
SECTION_FLAG_IS_ARRAY, { SECTION_ID_FRAME, SECTION_ID_SUBTITLE, -1 } },
-[SECTION_ID_FRAME] =  { SECTION_ID_FRAME, "frame", 0, { 
SECTION_ID_FRAME_TAGS, -1 } },
+[SECTION_ID_FRAME] =  { SECTION_ID_FRAME, "frame", 0, { 
SECTION_ID_FRAME_TAGS, SECTION_ID_FRAME_SIDEDATA_LIST, -1 } },
 [SECTION_ID_FRAME_TAGS] = { SECTION_ID_FRAME_TAGS, "tags", 
SECTION_FLAG_HAS_VARIABLE_FIELDS, { -1 }, .element_name = "tag", .unique_name = 
"frame_tags" },
+[SECTION_ID_FRAME_SIDEDATA_LIST] ={ SECTION_ID_FRAME_SIDEDATA_LIST, 
"sidedata_list", SECTION_FLAG_IS_ARRAY, { SECTION_ID_FRAME_SIDEDATA, -1 } },
+[SECTION_ID_FRAME_SIDEDATA] = { SECTION_ID_FRAME_SIDEDATA, "sidedata", 
0, { -1 } },
 [SECTION_ID_LIBRARY_VERSIONS] =   { SECTION_ID_LIBRARY_VERSIONS, 
"library_versions", SECTION_FLAG_IS_ARRAY, { SECTION_ID_LIBRARY_VERSION, -1 } },
 [SECTION_ID_LIBRARY_VERSION] ={ SECTION_ID_LIBRARY_VERSION, 
"library_version", 0, { -1 } },
 [SECTION_ID_PACKETS] ={ SECTION_ID_PACKETS, "packets", 
SECTION_FLAG_IS_ARRAY, { SECTION_ID_PACKET, -1} },
@@ -1722,6 +1726,7 @@ static void show_frame(WriterContext *w, AVFrame *frame, 
AVStream *stream,
 {
 AVBPrint pbuf;
 const char *s;
+int i;
 
 av_bprint_init(&pbuf, 1, AV_BPRINT_SIZE_UNLIMITED);
 
@@ -1784,6 +1789,20 @@ static void show_frame(WriterContext *w, AVFrame *frame, 
AVStream *stream,
 }
 if (do_show_frame_tags)
 show_tags(w, av_frame_get_metadata(frame), SECTION_ID_FRAME_TAGS);
+if (frame->nb_side_data) {
+writer_print_section_header(w, SECTION_ID_FRAME_SIDEDATA_LIST);
+for (i = 0; i < frame->nb_side_data; i++) {
+AVFrameSideData *sd = frame->side_data[i];
+const char *name;
+
+writer_print_section_header(w, SECTION_ID_FRAME_SIDEDATA);
+name = av_frame_side_data_name(sd->type);
+print_str("side_data_type", name ? name : "unknown");
+print_int("side_data_size", sd->size);
+writer_print_section_footer(w);
+}
+writer_print_section_footer(w);
+}
 
 writer_print_section_footer(w);
 
-- 
1.7.9.5

___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH] ffprobe: print some basic information about avframe side data

2014-07-29 Thread Michael Niedermayer
On Tue, Jul 01, 2014 at 07:20:13PM +0200, Clément Bœsch wrote:
> On Tue, Jul 01, 2014 at 05:50:11PM +0200, Michael Niedermayer wrote:
> > On Mon, Jun 30, 2014 at 06:37:45PM +0200, Clément Bœsch wrote:
> > > On Mon, Jun 30, 2014 at 04:16:17AM +0200, Michael Niedermayer wrote:
> > > > Signed-off-by: Michael Niedermayer 
> > > > ---
> > > >  ffprobe.c |6 ++
> > > >  1 file changed, 6 insertions(+)
> > > > 
> > > > diff --git a/ffprobe.c b/ffprobe.c
> > > > index 1329466..e96f51f 100644
> > > > --- a/ffprobe.c
> > > > +++ b/ffprobe.c
> > > > @@ -1722,6 +1722,7 @@ static void show_frame(WriterContext *w, AVFrame 
> > > > *frame, AVStream *stream,
> > > >  {
> > > >  AVBPrint pbuf;
> > > >  const char *s;
> > > > +int i;
> > > >  
> > > >  av_bprint_init(&pbuf, 1, AV_BPRINT_SIZE_UNLIMITED);
> > > >  
> > > > @@ -1765,6 +1766,11 @@ static void show_frame(WriterContext *w, AVFrame 
> > > > *frame, AVStream *stream,
> > > >  print_int("interlaced_frame",   frame->interlaced_frame);
> > > >  print_int("top_field_first",frame->top_field_first);
> > > >  print_int("repeat_pict",frame->repeat_pict);
> > > > +for (i = 0; i < frame->nb_side_data; i++) {
> > > > +AVFrameSideData *sd = frame->side_data[i];
> > > > +print_int("side_data_type", sd->type);
> > > > +print_int("side_data_size", sd->size);
> > > > +}
> > > 
> > > I suppose there are a few writers where having multiple time the same key
> > > will cause problems...
> > 
> > what do you suggest instead ?
> > 
> 
> Probably like we do with streams for instance. You'll have to create a new
> "side data" section I suppose.

done and resubmitted

[...]

-- 
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

DNS cache poisoning attacks, popular search engine, Google internet authority
dont be evil, please


signature.asc
Description: Digital signature
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel