[FFmpeg-devel] [PATCH] avutil: add av_get_colorspace_name()
Michael Niedermayer
michaelni at gmx.at
Sun Sep 1 01:18:39 CEST 2013
On Sun, Sep 01, 2013 at 12:18:16AM +0200, Clément Bœsch wrote:
> Note: maybe we should try to consistent with the commit message prefix
> (lavu/lavf/lavfi vs avutil/avformat/avfilter)
>
> On Sat, Aug 31, 2013 at 05:18:01PM +0200, Michael Niedermayer wrote:
> > Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
> > ---
> > libavcodec/utils.c | 21 ++++++---------------
> > libavutil/frame.c | 18 ++++++++++++++++++
> > libavutil/frame.h | 2 ++
> > 3 files changed, 26 insertions(+), 15 deletions(-)
> >
> > diff --git a/libavcodec/utils.c b/libavcodec/utils.c
> > index faa6a16..4dc8748 100644
> > --- a/libavcodec/utils.c
> > +++ b/libavcodec/utils.c
> > @@ -2592,6 +2592,7 @@ void avcodec_string(char *buf, int buf_size, AVCodecContext *enc, int encode)
> > case AVMEDIA_TYPE_VIDEO:
> > if (enc->pix_fmt != AV_PIX_FMT_NONE) {
> > char detail[256] = "(";
> > + const char *colorspace_name;
> > snprintf(buf + strlen(buf), buf_size - strlen(buf),
> > ", %s",
> > av_get_pix_fmt_name(enc->pix_fmt));
> > @@ -2601,21 +2602,11 @@ void avcodec_string(char *buf, int buf_size, AVCodecContext *enc, int encode)
> > if (enc->color_range != AVCOL_RANGE_UNSPECIFIED)
> > av_strlcatf(detail, sizeof(detail),
> > enc->color_range == AVCOL_RANGE_MPEG ? "TV, ": "PC, ");
> > - if (enc->colorspace<9U) {
> > - static const char *name[] = {
> > - "GBR",
> > - "bt709",
> > - NULL,
> > - NULL,
> > - "fcc",
> > - "bt470bg",
> > - "smpte170m",
> > - "smpte240m",
> > - "YCgCo",
> > - };
> > - if (name[enc->colorspace])
> > - av_strlcatf(detail, sizeof(detail), "%s, ", name[enc->colorspace]);
> > - }
> > +
> > + colorspace_name = av_get_colorspace_name(enc->colorspace);
> > + if (colorspace_name)
> > + av_strlcatf(detail, sizeof(detail), "%s, ", colorspace_name);
> > +
>
> Do you plan to use it elsewhere?
no, but i guess GUI based tools, maybe ffprobe, ... ? could use it
>
> > if (strlen(detail) > 1) {
> > detail[strlen(detail) - 2] = 0;
> > av_strlcatf(buf, buf_size, "%s)", detail);
> > diff --git a/libavutil/frame.c b/libavutil/frame.c
> > index b0fdd49..4f2a5b8 100644
> > --- a/libavutil/frame.c
> > +++ b/libavutil/frame.c
> > @@ -70,6 +70,24 @@ int8_t *av_frame_get_qp_table(AVFrame *f, int *stride, int *type)
> > return f->qp_table_buf->data;
> > }
> >
> > +const char *av_get_colorspace_name(enum AVColorSpace val)
> > +{
> > + static const char *name[] = {
>
> nit/style: remove one extra space
removed
>
> > + "GBR",
> > + "bt709",
> > + NULL,
> > + NULL,
> > + "fcc",
> > + "bt470bg",
> > + "smpte170m",
> > + "smpte240m",
> > + "YCgCo",
> > + };
>
> Using designated initializers will remove the need of padding with NULL
> and the risk of error.
changed
>
> Also, capitalization is inconsistent (and yes I know the issue is already
> present).
>
> Q: why is AVCOL_SPC_RGB actually "GBR"?
the names are consistent with x264
>
> > + if (val < 0 || val >= FF_ARRAY_ELEMS(name))
> > + return NULL;
> > + return name[val];
> > +}
> > +
> > static void get_frame_defaults(AVFrame *frame)
> > {
> > if (frame->extended_data != frame->data)
> > diff --git a/libavutil/frame.h b/libavutil/frame.h
> > index 3313703..98410b9 100644
> > --- a/libavutil/frame.h
> > +++ b/libavutil/frame.h
> > @@ -508,6 +508,8 @@ void av_frame_set_colorspace(AVFrame *frame, enum AVColorSpace val);
> > enum AVColorRange av_frame_get_color_range(const AVFrame *frame);
> > void av_frame_set_color_range(AVFrame *frame, enum AVColorRange val);
> >
> > +const char *av_get_colorspace_name(enum AVColorSpace val);
> > +
>
> Here is a free doxycookie slightly customized from avcodec_get_name():
>
> /**
> * Get the name of a colorspace.
> * @return a static string identifying the codec; can be NULL.
> */
added
>
> [...]
>
> Missing minor bump, otherwise should be OK.
will bump when i comit it
>
> --
> Clément B.
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
If a bugfix only changes things apparently unrelated to the bug with no
further explanation, that is a good sign that the bugfix is wrong.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20130901/9c2382bf/attachment.asc>
More information about the ffmpeg-devel
mailing list