func: int avcodec_decode_subtitle2(AVCodecContext *avctx,AVSubtitle *sub,int *got_sub_ptr,AVPacket *avpkt) if ( ( avctx -> codec -> type ) != AVMEDIA_TYPE_SUBTITLE )  if ( avpkt -> size )  AVPacket pkt_recoded ; AVPacket tmp = * avpkt ; pkt_recoded = tmp; ret = recode_subtitle ( avctx , & pkt_recoded , ( & tmp ) ); static int recode_subtitle(AVCodecContext *avctx,AVPacket *outpkt,const AVPacket *inpkt) char * inb ; char * outb ; size_t inl ; size_t outl ; AVPacket tmp ; if ( avctx -> sub_charenc_mode != 1 )  cd = iconv_open ( "UTF-8" , ( avctx -> sub_charenc ) ); if ( cd == ( ( iconv_t ) ( - 1 ) ) )  inl = ( inpkt -> size ); if ( inl >= ( 2147483647 / 4 - 16 ) )  ret = av_new_packet ( & tmp , ( inl * 4 ) ); if ( ret < 0 )  outpkt -> data = tmp . data; outpkt -> size = tmp . size; outb = ( outpkt -> data ); outl = ( outpkt -> size ); if ( iconv ( cd , & inb , & inl , & outb , & outl ) == ( ( size_t ) ( - 1 ) ) || iconv ( cd , ( ( void * ) 0 ) , ( ( void * ) 0 ) , & outb , & outl ) == ( ( size_t ) ( - 1 ) ) || outl >= ( outpkt -> size ) || inl != 0 )  outpkt -> size -= outl; memset ( ( outpkt -> data + outpkt -> size ) , 0 , outl ); 