@ -23,7 +23,6 @@
# include "libavutil/colorspace.h"
typedef struct DVBSubtitleContext {
int hide_state ;
int object_version ;
} DVBSubtitleContext ;
@ -259,7 +258,7 @@ static int encode_dvb_subtitles(DVBSubtitleContext *s,
page_id = 1 ;
if ( h - > num_rects = = 0 | | h - > rects = = NULL )
if ( h - > num_rects & & h - > rects = = NULL )
return - 1 ;
* q + + = 0x00 ; /* subtitle_stream_id */
@ -272,9 +271,6 @@ static int encode_dvb_subtitles(DVBSubtitleContext *s,
pseg_len = q ;
q + = 2 ; /* segment length */
* q + + = 30 ; /* page_timeout (seconds) */
if ( s - > hide_state )
page_state = 0 ; /* normal case */
else
page_state = 2 ; /* mode change */
/* page_version = 0 + page_state */
* q + + = ( s - > object_version < < 4 ) | ( page_state < < 2 ) | 3 ;
@ -288,7 +284,7 @@ static int encode_dvb_subtitles(DVBSubtitleContext *s,
bytestream_put_be16 ( & pseg_len , q - pseg_len - 2 ) ;
if ( ! s - > hide_state ) {
if ( h - > num_rects ) {
for ( clut_id = 0 ; clut_id < h - > num_rects ; clut_id + + ) {
/* CLUT segment */
@ -366,18 +362,17 @@ static int encode_dvb_subtitles(DVBSubtitleContext *s,
* q + + = 0 ; /* 8 bit fill colors */
* q + + = 0x03 ; /* 4 bit and 2 bit fill colors */
if ( ! s - > hide_state ) {
/* TODO reindent */
bytestream_put_be16 ( & q , region_id ) ; /* object_id == region_id */
* q + + = ( 0 < < 6 ) | ( 0 < < 4 ) ;
* q + + = 0 ;
* q + + = 0xf0 ;
* q + + = 0 ;
}
bytestream_put_be16 ( & pseg_len , q - pseg_len - 2 ) ;
}
if ( ! s - > hide_state ) {
if ( h - > num_rects ) {
for ( object_id = 0 ; object_id < h - > num_rects ; object_id + + ) {
void ( * dvb_encode_rle ) ( uint8_t * * pq ,
@ -446,7 +441,6 @@ static int encode_dvb_subtitles(DVBSubtitleContext *s,
* q + + = 0xff ; /* end of PES data */
s - > object_version = ( s - > object_version + 1 ) & 0xf ;
s - > hide_state = ! s - > hide_state ;
return q - outbuf ;
}