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.
|
releases are sorted from youngest to oldest.
|
||||||
|
|
||||||
version 7.1.3:
|
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
|
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/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()
|
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;
|
DrawTextContext *s = ctx->priv;
|
||||||
char *text = s->expanded_text.str;
|
char *text = s->expanded_text.str;
|
||||||
char *textdup = NULL, *start = NULL;
|
char *textdup = NULL;
|
||||||
int num_chars = 0;
|
|
||||||
int width64 = 0, w64 = 0;
|
int width64 = 0, w64 = 0;
|
||||||
int cur_min_y64 = 0, first_max_y64 = -32000;
|
int cur_min_y64 = 0, first_max_y64 = -32000;
|
||||||
int first_min_x64 = 32000, last_max_x64 = -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;
|
Glyph *glyph = NULL;
|
||||||
|
|
||||||
int i, tab_idx = 0, last_tab_idx = 0, line_offset = 0;
|
int i, tab_idx = 0, last_tab_idx = 0, line_offset = 0;
|
||||||
char* p;
|
uint8_t *start, *p;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
// Count the lines and the tab characters
|
// Count the lines and the tab characters
|
||||||
|
|
@ -1458,7 +1457,7 @@ continue_on_failed2:
|
||||||
TextLine *cur_line = &s->lines[line_count];
|
TextLine *cur_line = &s->lines[line_count];
|
||||||
HarfbuzzData *hb = &cur_line->hb_data;
|
HarfbuzzData *hb = &cur_line->hb_data;
|
||||||
cur_line->cluster_offset = line_offset;
|
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) {
|
if (ret != 0) {
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
@ -1516,14 +1515,12 @@ continue_on_failed2:
|
||||||
if (w64 > width64) {
|
if (w64 > width64) {
|
||||||
width64 = w64;
|
width64 = w64;
|
||||||
}
|
}
|
||||||
num_chars = -1;
|
|
||||||
start = p;
|
start = p;
|
||||||
++line_count;
|
++line_count;
|
||||||
line_offset = i + 1;
|
line_offset = i + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (code == 0) break;
|
if (code == 0) break;
|
||||||
++num_chars;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
metrics->line_height64 = s->face->size->metrics.height;
|
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.
|
* to prevent undefined results.
|
||||||
*/
|
*/
|
||||||
#define GET_UTF8(val, GET_BYTE, ERROR)\
|
#define GET_UTF8(val, GET_BYTE, ERROR)\
|
||||||
val= (GET_BYTE);\
|
val= (uint8_t)(GET_BYTE);\
|
||||||
{\
|
{\
|
||||||
uint32_t top = (val & 128) >> 1;\
|
uint32_t top = (val & 128) >> 1;\
|
||||||
if ((val & 0xc0) == 0x80 || val >= 0xFE)\
|
if ((val & 0xc0) == 0x80 || val >= 0xFE)\
|
||||||
{ERROR}\
|
{ERROR}\
|
||||||
while (val & top) {\
|
while (val & top) {\
|
||||||
unsigned int tmp = (GET_BYTE) - 128;\
|
unsigned int tmp = (uint8_t)(GET_BYTE) - 128;\
|
||||||
if(tmp>>6)\
|
if(tmp>>6)\
|
||||||
{ERROR}\
|
{ERROR}\
|
||||||
val= (val<<6) + tmp;\
|
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.
|
* typically a goto statement.
|
||||||
*/
|
*/
|
||||||
#define GET_UTF16(val, GET_16BIT, ERROR)\
|
#define GET_UTF16(val, GET_16BIT, ERROR)\
|
||||||
val = (GET_16BIT);\
|
val = (uint16_t)(GET_16BIT);\
|
||||||
{\
|
{\
|
||||||
unsigned int hi = val - 0xD800;\
|
unsigned int hi = val - 0xD800;\
|
||||||
if (hi < 0x800) {\
|
if (hi < 0x800) {\
|
||||||
val = (GET_16BIT) - 0xDC00;\
|
val = (uint16_t)(GET_16BIT) - 0xDC00;\
|
||||||
if (val > 0x3FFU || hi > 0x3FFU)\
|
if (val > 0x3FFU || hi > 0x3FFU)\
|
||||||
{ERROR}\
|
{ERROR}\
|
||||||
val += (hi<<10) + 0x10000;\
|
val += (hi<<10) + 0x10000;\
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue