@ -252,16 +252,18 @@ static int srt_encode_frame(AVCodecContext *avctx,
dialog = ff_ass_split_dialog ( s - > ass_ctx , sub - > rects [ i ] - > ass , 0 , & num ) ;
dialog = ff_ass_split_dialog ( s - > ass_ctx , sub - > rects [ i ] - > ass , 0 , & num ) ;
for ( ; dialog & & num - - ; dialog + + ) {
for ( ; dialog & & num - - ; dialog + + ) {
int sh , sm , ss , sc = 10 * dialog - > start ;
if ( avctx - > codec - > id = = CODEC_ID_SRT ) {
int eh , em , es , ec = 10 * dialog - > end ;
int sh , sm , ss , sc = 10 * dialog - > start ;
sh = sc / 3600000 ; sc - = 3600000 * sh ;
int eh , em , es , ec = 10 * dialog - > end ;
sm = sc / 60000 ; sc - = 60000 * sm ;
sh = sc / 3600000 ; sc - = 3600000 * sh ;
ss = sc / 1000 ; sc - = 1000 * ss ;
sm = sc / 60000 ; sc - = 60000 * sm ;
eh = ec / 3600000 ; ec - = 3600000 * eh ;
ss = sc / 1000 ; sc - = 1000 * ss ;
em = ec / 60000 ; ec - = 60000 * em ;
eh = ec / 3600000 ; ec - = 3600000 * eh ;
es = ec / 1000 ; ec - = 1000 * es ;
em = ec / 60000 ; ec - = 60000 * em ;
srt_print ( s , " %d \r \n %02d:%02d:%02d,%03d --> %02d:%02d:%02d,%03d \r \n " ,
es = ec / 1000 ; ec - = 1000 * es ;
+ + s - > count , sh , sm , ss , sc , eh , em , es , ec ) ;
srt_print ( s , " %d \r \n %02d:%02d:%02d,%03d --> %02d:%02d:%02d,%03d \r \n " ,
+ + s - > count , sh , sm , ss , sc , eh , em , es , ec ) ;
}
s - > alignment_applied = 0 ;
s - > alignment_applied = 0 ;
s - > dialog_start = s - > ptr - 2 ;
s - > dialog_start = s - > ptr - 2 ;
srt_style_apply ( s , dialog - > style ) ;
srt_style_apply ( s , dialog - > style ) ;
@ -289,9 +291,10 @@ static int srt_encode_close(AVCodecContext *avctx)
return 0 ;
return 0 ;
}
}
# if CONFIG_SRT_ENCODER
AVCodec ff_srt_encoder = {
AVCodec ff_srt_encoder = {
. name = " srt " ,
. name = " srt " ,
. long_name = NULL_IF_CONFIG_SMALL ( " SubRip subtitle " ) ,
. long_name = NULL_IF_CONFIG_SMALL ( " SubRip subtitle with embedded timing " ) ,
. type = AVMEDIA_TYPE_SUBTITLE ,
. type = AVMEDIA_TYPE_SUBTITLE ,
. id = AV_CODEC_ID_SRT ,
. id = AV_CODEC_ID_SRT ,
. priv_data_size = sizeof ( SRTContext ) ,
. priv_data_size = sizeof ( SRTContext ) ,
@ -299,3 +302,17 @@ AVCodec ff_srt_encoder = {
. encode = srt_encode_frame ,
. encode = srt_encode_frame ,
. close = srt_encode_close ,
. close = srt_encode_close ,
} ;
} ;
# endif
# if CONFIG_SUBRIP_ENCODER
AVCodec ff_subrip_encoder = {
. name = " subrip " ,
. long_name = NULL_IF_CONFIG_SMALL ( " SubRip subtitle " ) ,
. type = AVMEDIA_TYPE_SUBTITLE ,
. id = AV_CODEC_ID_SUBRIP ,
. priv_data_size = sizeof ( SRTContext ) ,
. init = srt_encode_init ,
. encode = srt_encode_frame ,
. close = srt_encode_close ,
} ;
# endif