mirror of https://github.com/FFmpeg/FFmpeg.git
Compare commits
4 Commits
baee5f5e27
...
f46e514491
| Author | SHA1 | Date |
|---|---|---|
|
|
f46e514491 | |
|
|
87e1bea70b | |
|
|
19bc0ef3f3 | |
|
|
bdc11c44b1 |
|
|
@ -2,6 +2,10 @@ Entries are sorted chronologically from oldest to youngest within each release,
|
|||
releases are sorted from youngest to oldest.
|
||||
|
||||
version 7.1.3:
|
||||
avutil/common: cast GET_BYTE/GET_16BIT returned value
|
||||
avfilter/vf_drawtext: fix call GET_UTF8 with invalid argument
|
||||
avfilter/vf_drawtext: fix incorrect text length
|
||||
avformat/avformat: also clear FFFormatContext packet queue when closing a muxer
|
||||
avfilter/vf_drawtext: Account for bbox text seperator
|
||||
avcodec/mediacodecdec_common: Check that the input to mediacodec_wrap_sw_audio_buffer() contains channel * sample_size
|
||||
avcodec/utvideodec: Set B for the width= 1 case in restore_median_planar_il()
|
||||
|
|
|
|||
|
|
@ -1394,8 +1394,7 @@ static int measure_text(AVFilterContext *ctx, TextMetrics *metrics)
|
|||
{
|
||||
DrawTextContext *s = ctx->priv;
|
||||
char *text = s->expanded_text.str;
|
||||
char *textdup = NULL, *start = NULL;
|
||||
int num_chars = 0;
|
||||
char *textdup = NULL;
|
||||
int width64 = 0, w64 = 0;
|
||||
int cur_min_y64 = 0, first_max_y64 = -32000;
|
||||
int first_min_x64 = 32000, last_max_x64 = -32000;
|
||||
|
|
@ -1405,7 +1404,7 @@ static int measure_text(AVFilterContext *ctx, TextMetrics *metrics)
|
|||
Glyph *glyph = NULL;
|
||||
|
||||
int i, tab_idx = 0, last_tab_idx = 0, line_offset = 0;
|
||||
char* p;
|
||||
uint8_t *start, *p;
|
||||
int ret = 0;
|
||||
|
||||
// Count the lines and the tab characters
|
||||
|
|
@ -1458,7 +1457,7 @@ continue_on_failed2:
|
|||
TextLine *cur_line = &s->lines[line_count];
|
||||
HarfbuzzData *hb = &cur_line->hb_data;
|
||||
cur_line->cluster_offset = line_offset;
|
||||
ret = shape_text_hb(s, hb, start, num_chars);
|
||||
ret = shape_text_hb(s, hb, start, p - start);
|
||||
if (ret != 0) {
|
||||
goto done;
|
||||
}
|
||||
|
|
@ -1516,14 +1515,12 @@ continue_on_failed2:
|
|||
if (w64 > width64) {
|
||||
width64 = w64;
|
||||
}
|
||||
num_chars = -1;
|
||||
start = p;
|
||||
++line_count;
|
||||
line_offset = i + 1;
|
||||
}
|
||||
|
||||
if (code == 0) break;
|
||||
++num_chars;
|
||||
}
|
||||
|
||||
metrics->line_height64 = s->face->size->metrics.height;
|
||||
|
|
|
|||
|
|
@ -486,13 +486,13 @@ static av_always_inline av_const int av_parity_c(uint32_t v)
|
|||
* to prevent undefined results.
|
||||
*/
|
||||
#define GET_UTF8(val, GET_BYTE, ERROR)\
|
||||
val= (GET_BYTE);\
|
||||
val= (uint8_t)(GET_BYTE);\
|
||||
{\
|
||||
uint32_t top = (val & 128) >> 1;\
|
||||
if ((val & 0xc0) == 0x80 || val >= 0xFE)\
|
||||
{ERROR}\
|
||||
while (val & top) {\
|
||||
unsigned int tmp = (GET_BYTE) - 128;\
|
||||
unsigned int tmp = (uint8_t)(GET_BYTE) - 128;\
|
||||
if(tmp>>6)\
|
||||
{ERROR}\
|
||||
val= (val<<6) + tmp;\
|
||||
|
|
@ -511,11 +511,11 @@ static av_always_inline av_const int av_parity_c(uint32_t v)
|
|||
* typically a goto statement.
|
||||
*/
|
||||
#define GET_UTF16(val, GET_16BIT, ERROR)\
|
||||
val = (GET_16BIT);\
|
||||
val = (uint16_t)(GET_16BIT);\
|
||||
{\
|
||||
unsigned int hi = val - 0xD800;\
|
||||
if (hi < 0x800) {\
|
||||
val = (GET_16BIT) - 0xDC00;\
|
||||
val = (uint16_t)(GET_16BIT) - 0xDC00;\
|
||||
if (val > 0x3FFU || hi > 0x3FFU)\
|
||||
{ERROR}\
|
||||
val += (hi<<10) + 0x10000;\
|
||||
|
|
|
|||
Loading…
Reference in New Issue