On 02/27/2012 02:17 PM, Anton Khirnov wrote:
> It's currently only used as temporary storage by the mov demuxer. Make
> it use a local variable instead.
> ---
> libavcodec/avcodec.h | 4 +++-
> libavcodec/options.c | 2 ++
> libavcodec/version.h | 3 +++
> libavformat/mov.c | 7 ++++---
> 4 files changed, 12 insertions(+), 4 deletions(-)
>
> diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
> index 19478fe..13de8cc 100644
> --- a/libavcodec/avcodec.h
> +++ b/libavcodec/avcodec.h
> @@ -1681,13 +1681,15 @@ typedef struct AVCodecContext {
> */
> int inter_quant_bias;
>
> +#if FF_API_COLOR_TABLE_ID
> /**
> * color table ID
> * - encoding: unused
> * - decoding: Which clrtable should be used for 8bit RGB images.
> * Tables have to be stored somewhere. FIXME
> */
> - int color_table_id;
> + attribute_deprecated int color_table_id;
> +#endif
>
> /**
> * slice flags
> diff --git a/libavcodec/options.c b/libavcodec/options.c
> index 9fdfb88..64abc9f 100644
> --- a/libavcodec/options.c
> +++ b/libavcodec/options.c
> @@ -299,7 +299,9 @@ static const AVOption options[]={
> {"me_range", "limit motion vectors range (1023 for DivX player)",
> OFFSET(me_range), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
> {"ibias", "intra quant bias", OFFSET(intra_quant_bias), AV_OPT_TYPE_INT,
> {.dbl = FF_DEFAULT_QUANT_BIAS }, INT_MIN, INT_MAX, V|E},
> {"pbias", "inter quant bias", OFFSET(inter_quant_bias), AV_OPT_TYPE_INT,
> {.dbl = FF_DEFAULT_QUANT_BIAS }, INT_MIN, INT_MAX, V|E},
> +#if FF_API_COLOR_TABLE_ID
> {"color_table_id", NULL, OFFSET(color_table_id), AV_OPT_TYPE_INT, {.dbl =
> DEFAULT }, INT_MIN, INT_MAX},
> +#endif
> {"global_quality", NULL, OFFSET(global_quality), AV_OPT_TYPE_INT, {.dbl =
> DEFAULT }, INT_MIN, INT_MAX, V|A|E},
> {"coder", NULL, OFFSET(coder_type), AV_OPT_TYPE_INT, {.dbl = DEFAULT },
> INT_MIN, INT_MAX, V|E, "coder"},
> {"vlc", "variable length coder / huffman coder", 0, AV_OPT_TYPE_CONST, {.dbl
> = FF_CODER_TYPE_VLC }, INT_MIN, INT_MAX, V|E, "coder"},
> diff --git a/libavcodec/version.h b/libavcodec/version.h
> index 386f287..33a6c2e 100644
> --- a/libavcodec/version.h
> +++ b/libavcodec/version.h
> @@ -56,5 +56,8 @@
> #ifndef FF_API_SUB_ID
> #define FF_API_SUB_ID (LIBAVCODEC_VERSION_MAJOR < 55)
> #endif
> +#ifndef FF_API_COLOR_TABLE_ID
> +#define FF_API_COLOR_TABLE_ID (LIBAVCODEC_VERSION_MAJOR < 55)
> +#endif
>
> #endif /* AVCODEC_VERSION_H */
> diff --git a/libavformat/mov.c b/libavformat/mov.c
> index b11e0bf..0c51eac 100644
> --- a/libavformat/mov.c
> +++ b/libavformat/mov.c
> @@ -1180,6 +1180,7 @@ int ff_mov_read_stsd_entries(MOVContext *c, AVIOContext
> *pb, int entries)
> if (st->codec->codec_type==AVMEDIA_TYPE_VIDEO) {
> unsigned int color_depth, len;
> int color_greyscale;
> + int color_table_id;
>
> st->codec->codec_id = id;
> avio_rb16(pb); /* version */
> @@ -1207,9 +1208,9 @@ int ff_mov_read_stsd_entries(MOVContext *c, AVIOContext
> *pb, int entries)
> st->codec->codec_tag=MKTAG('I', '4', '2', '0');
>
> st->codec->bits_per_coded_sample = avio_rb16(pb); /* depth */
> - st->codec->color_table_id = avio_rb16(pb); /* colortable id */
> + color_table_id = avio_rb16(pb); /* colortable id */
> av_dlog(c->fc, "depth %d, ctab id %d\n",
> - st->codec->bits_per_coded_sample,
> st->codec->color_table_id);
> + st->codec->bits_per_coded_sample, color_table_id);
> /* figure out the palette situation */
> color_depth = st->codec->bits_per_coded_sample & 0x1F;
> color_greyscale = st->codec->bits_per_coded_sample & 0x20;
> @@ -1236,7 +1237,7 @@ int ff_mov_read_stsd_entries(MOVContext *c, AVIOContext
> *pb, int entries)
> if (color_index < 0)
> color_index = 0;
> }
> - } else if (st->codec->color_table_id) {
> + } else if (color_table_id) {
> const uint8_t *color_table;
> /* if flag bit 3 is set, use the default palette */
> color_count = 1 << color_depth;
definitely LGTM.
-Justin
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel