mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
Implement FFMAX3(a,b,c) - maximum over three arguments.
Originally committed as revision 12910 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
c6cd525aa0
commit
159ef4b02a
@ -3100,7 +3100,7 @@ int ff_mpeg4_get_video_packet_prefix_length(MpegEncContext *s){
|
|||||||
case FF_S_TYPE:
|
case FF_S_TYPE:
|
||||||
return s->f_code+15;
|
return s->f_code+15;
|
||||||
case FF_B_TYPE:
|
case FF_B_TYPE:
|
||||||
return FFMAX(FFMAX(s->f_code, s->b_code)+15, 17);
|
return FFMAX3(s->f_code, s->b_code, 2) + 15;
|
||||||
default:
|
default:
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
@ -6502,7 +6502,7 @@ static void filter_mb( H264Context *h, int mb_x, int mb_y, uint8_t *img_y, uint8
|
|||||||
//for sufficiently low qp, filtering wouldn't do anything
|
//for sufficiently low qp, filtering wouldn't do anything
|
||||||
//this is a conservative estimate: could also check beta_offset and more accurate chroma_qp
|
//this is a conservative estimate: could also check beta_offset and more accurate chroma_qp
|
||||||
if(!FRAME_MBAFF){
|
if(!FRAME_MBAFF){
|
||||||
int qp_thresh = 15 - h->slice_alpha_c0_offset - FFMAX(0, FFMAX(h->pps.chroma_qp_index_offset[0], h->pps.chroma_qp_index_offset[1]));
|
int qp_thresh = 15 - h->slice_alpha_c0_offset - FFMAX3(0, h->pps.chroma_qp_index_offset[0], h->pps.chroma_qp_index_offset[1]);
|
||||||
int qp = s->current_picture.qscale_table[mb_xy];
|
int qp = s->current_picture.qscale_table[mb_xy];
|
||||||
if(qp <= qp_thresh
|
if(qp <= qp_thresh
|
||||||
&& (mb_x == 0 || ((qp + s->current_picture.qscale_table[mb_xy-1] + 1)>>1) <= qp_thresh)
|
&& (mb_x == 0 || ((qp + s->current_picture.qscale_table[mb_xy-1] + 1)>>1) <= qp_thresh)
|
||||||
|
@ -123,7 +123,7 @@ read_header:
|
|||||||
*data_size = sizeof(AVFrame);
|
*data_size = sizeof(AVFrame);
|
||||||
|
|
||||||
if(!s->lossless){
|
if(!s->lossless){
|
||||||
picture->quality= FFMAX(FFMAX(s->qscale[0], s->qscale[1]), s->qscale[2]);
|
picture->quality= FFMAX3(s->qscale[0], s->qscale[1], s->qscale[2]);
|
||||||
picture->qstride= 0;
|
picture->qstride= 0;
|
||||||
picture->qscale_table= s->qscale_table;
|
picture->qscale_table= s->qscale_table;
|
||||||
memset(picture->qscale_table, picture->quality, (s->width+15)/16);
|
memset(picture->qscale_table, picture->quality, (s->width+15)/16);
|
||||||
|
@ -1284,7 +1284,7 @@ eoi_parser:
|
|||||||
*data_size = sizeof(AVFrame);
|
*data_size = sizeof(AVFrame);
|
||||||
|
|
||||||
if(!s->lossless){
|
if(!s->lossless){
|
||||||
picture->quality= FFMAX(FFMAX(s->qscale[0], s->qscale[1]), s->qscale[2]);
|
picture->quality= FFMAX3(s->qscale[0], s->qscale[1], s->qscale[2]);
|
||||||
picture->qstride= 0;
|
picture->qstride= 0;
|
||||||
picture->qscale_table= s->qscale_table;
|
picture->qscale_table= s->qscale_table;
|
||||||
memset(picture->qscale_table, picture->quality, (s->width+15)/16);
|
memset(picture->qscale_table, picture->quality, (s->width+15)/16);
|
||||||
|
@ -2814,7 +2814,7 @@ static int encode_picture(MpegEncContext *s, int picture_number)
|
|||||||
int a,b;
|
int a,b;
|
||||||
a= ff_get_best_fcode(s, s->p_field_mv_table[0][0], CANDIDATE_MB_TYPE_INTER_I); //FIXME field_select
|
a= ff_get_best_fcode(s, s->p_field_mv_table[0][0], CANDIDATE_MB_TYPE_INTER_I); //FIXME field_select
|
||||||
b= ff_get_best_fcode(s, s->p_field_mv_table[1][1], CANDIDATE_MB_TYPE_INTER_I);
|
b= ff_get_best_fcode(s, s->p_field_mv_table[1][1], CANDIDATE_MB_TYPE_INTER_I);
|
||||||
s->f_code= FFMAX(s->f_code, FFMAX(a,b));
|
s->f_code= FFMAX3(s->f_code, a, b);
|
||||||
}
|
}
|
||||||
|
|
||||||
ff_fix_long_p_mvs(s);
|
ff_fix_long_p_mvs(s);
|
||||||
|
@ -98,8 +98,8 @@ typedef struct MatroskaSubtitleTrack {
|
|||||||
//..
|
//..
|
||||||
} MatroskaSubtitleTrack;
|
} MatroskaSubtitleTrack;
|
||||||
|
|
||||||
#define MAX_TRACK_SIZE (FFMAX(FFMAX(sizeof(MatroskaVideoTrack), \
|
#define MAX_TRACK_SIZE (FFMAX3(sizeof(MatroskaVideoTrack), \
|
||||||
sizeof(MatroskaAudioTrack)), \
|
sizeof(MatroskaAudioTrack), \
|
||||||
sizeof(MatroskaSubtitleTrack)))
|
sizeof(MatroskaSubtitleTrack)))
|
||||||
|
|
||||||
typedef struct MatroskaLevel {
|
typedef struct MatroskaLevel {
|
||||||
|
@ -111,6 +111,7 @@
|
|||||||
#define FFSIGN(a) ((a) > 0 ? 1 : -1)
|
#define FFSIGN(a) ((a) > 0 ? 1 : -1)
|
||||||
|
|
||||||
#define FFMAX(a,b) ((a) > (b) ? (a) : (b))
|
#define FFMAX(a,b) ((a) > (b) ? (a) : (b))
|
||||||
|
#define FFMAX3(a,b,c) FFMAX(FFMAX(a,b),c)
|
||||||
#define FFMIN(a,b) ((a) > (b) ? (b) : (a))
|
#define FFMIN(a,b) ((a) > (b) ? (b) : (a))
|
||||||
|
|
||||||
#define FFSWAP(type,a,b) do{type SWAP_tmp= b; b= a; a= SWAP_tmp;}while(0)
|
#define FFSWAP(type,a,b) do{type SWAP_tmp= b; b= a; a= SWAP_tmp;}while(0)
|
||||||
|
Loading…
Reference in New Issue
Block a user