Browse Source

avcodec: support setting the chroma intra matrix

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
tags/n2.2-rc1
Michael Niedermayer 11 years ago
parent
commit
cbcfd7da4d
3 changed files with 14 additions and 0 deletions
  1. +11
    -0
      libavcodec/avcodec.h
  2. +2
    -0
      libavcodec/mpegvideo_enc.c
  3. +1
    -0
      libavcodec/utils.c

+ 11
- 0
libavcodec/avcodec.h View File

@@ -2988,6 +2988,14 @@ typedef struct AVCodecContext {
#define FF_DEBUG_VIS_MV_B_FOR 0x00000002 //visualize forward predicted MVs of B frames
#define FF_DEBUG_VIS_MV_B_BACK 0x00000004 //visualize backward predicted MVs of B frames
#endif

/**
* custom intra quantization matrix
* Code outside libavcodec should access this field using av_codec_g/set_chroma_intra_matrix()
* - encoding: Set by user, can be NULL.
* - decoding: unused.
*/
uint16_t *chroma_intra_matrix;
} AVCodecContext;

AVRational av_codec_get_pkt_timebase (const AVCodecContext *avctx);
@@ -3002,6 +3010,9 @@ void av_codec_set_lowres(AVCodecContext *avctx, int val);
int av_codec_get_seek_preroll(const AVCodecContext *avctx);
void av_codec_set_seek_preroll(AVCodecContext *avctx, int val);

uint16_t *av_codec_get_chroma_intra_matrix(const AVCodecContext *avctx);
void av_codec_set_chroma_intra_matrix(AVCodecContext *avctx, uint16_t *val);

/**
* AVProfile.
*/


+ 2
- 0
libavcodec/mpegvideo_enc.c View File

@@ -3511,6 +3511,8 @@ static int encode_picture(MpegEncContext *s, int picture_number)
chroma_matrix =
luma_matrix = s->avctx->intra_matrix;
}
if (s->avctx->chroma_intra_matrix)
chroma_matrix = s->avctx->chroma_intra_matrix;

/* for mjpeg, we do include qscale in the matrix */
for(i=1;i<64;i++){


+ 1
- 0
libavcodec/utils.c View File

@@ -1116,6 +1116,7 @@ MAKE_ACCESSORS(AVCodecContext, codec, AVRational, pkt_timebase)
MAKE_ACCESSORS(AVCodecContext, codec, const AVCodecDescriptor *, codec_descriptor)
MAKE_ACCESSORS(AVCodecContext, codec, int, lowres)
MAKE_ACCESSORS(AVCodecContext, codec, int, seek_preroll)
MAKE_ACCESSORS(AVCodecContext, codec, uint16_t*, chroma_intra_matrix)

int av_codec_get_max_lowres(const AVCodec *codec)
{


Loading…
Cancel
Save