mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
dvbsubdec: dirty handkling
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
eea064aea6
commit
b522d2a3b7
@ -209,6 +209,7 @@ typedef struct DVBSubRegion {
|
||||
|
||||
uint8_t *pbuf;
|
||||
int buf_size;
|
||||
int dirty;
|
||||
|
||||
DVBSubObjectDisplay *display_list;
|
||||
|
||||
@ -781,6 +782,7 @@ static void dvbsub_parse_pixel_data_block(AVCodecContext *avctx, DVBSubObjectDis
|
||||
return;
|
||||
|
||||
pbuf = region->pbuf;
|
||||
region->dirty = 1;
|
||||
|
||||
x_pos = display->x_pos;
|
||||
y_pos = display->y_pos;
|
||||
@ -1044,6 +1046,7 @@ static void dvbsub_parse_region_segment(AVCodecContext *avctx,
|
||||
region->pbuf = av_malloc(region->buf_size);
|
||||
|
||||
fill = 1;
|
||||
region->dirty = 0;
|
||||
}
|
||||
|
||||
region->depth = 1 << (((*buf++) >> 2) & 7);
|
||||
@ -1356,6 +1359,10 @@ static int dvbsub_display_end_segment(AVCodecContext *avctx, const uint8_t *buf,
|
||||
if (!region)
|
||||
continue;
|
||||
|
||||
if (!region->dirty)
|
||||
continue;
|
||||
|
||||
rect = sub->rects[i];
|
||||
rect->x = display->x_pos + offset_x;
|
||||
rect->y = display->y_pos + offset_y;
|
||||
rect->w = region->width;
|
||||
|
Loading…
Reference in New Issue
Block a user