mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
avcodec: add avcodec_enum_to_chroma_pos()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
4443213d2e
commit
b7397857e2
@ -3606,6 +3606,17 @@ void avcodec_align_dimensions(AVCodecContext *s, int *width, int *height);
|
||||
void avcodec_align_dimensions2(AVCodecContext *s, int *width, int *height,
|
||||
int linesize_align[AV_NUM_DATA_POINTERS]);
|
||||
|
||||
/**
|
||||
* Converts AVChromaLocation to swscale x/y chroma position.
|
||||
*
|
||||
* The positions represent the chroma (0,0) position in a coordinates system
|
||||
* with luma (0,0) representing the origin and luma(1,1) representing 256,256
|
||||
*
|
||||
* @param xpos horizontal chroma sample position
|
||||
* @param ypos vertical chroma sample position
|
||||
*/
|
||||
int avcodec_enum_to_chroma_pos(int *xpos, int *ypos, enum AVChromaLocation pos);
|
||||
|
||||
#if FF_API_OLD_DECODE_AUDIO
|
||||
/**
|
||||
* Wrapper function which calls avcodec_decode_audio4.
|
||||
|
@ -338,6 +338,18 @@ void avcodec_align_dimensions(AVCodecContext *s, int *width, int *height)
|
||||
*width = FFALIGN(*width, align);
|
||||
}
|
||||
|
||||
int avcodec_enum_to_chroma_pos(int *xpos, int *ypos, enum AVChromaLocation pos)
|
||||
{
|
||||
if (pos <= AVCHROMA_LOC_UNSPECIFIED || pos >= AVCHROMA_LOC_NB)
|
||||
return AVERROR(EINVAL);
|
||||
pos--;
|
||||
|
||||
*xpos = (pos&1) * 128;
|
||||
*ypos = ((pos>>1)^(pos<4)) * 128;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int avcodec_fill_audio_frame(AVFrame *frame, int nb_channels,
|
||||
enum AVSampleFormat sample_fmt, const uint8_t *buf,
|
||||
int buf_size, int align)
|
||||
|
Loading…
Reference in New Issue
Block a user