vlc/vlc-3.0 | branch: master | Francois Cartegnie <[email protected]> | Thu Sep 26 11:02:35 2019 +0200| [94f9f09ec74c97bcbb0eb505631d244ad5f054d8] | committer: Francois Cartegnie
packetizer: mpegvideo: perform secondary drain (cherry picked from commit 873a6bc6b274043791d4e1d92ac24fc165a9ba34) > http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=94f9f09ec74c97bcbb0eb505631d244ad5f054d8 --- modules/packetizer/mpegvideo.c | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/modules/packetizer/mpegvideo.c b/modules/packetizer/mpegvideo.c index b1f04bcd72..f4f3be9a83 100644 --- a/modules/packetizer/mpegvideo.c +++ b/modules/packetizer/mpegvideo.c @@ -182,6 +182,7 @@ static block_t *GetCc( decoder_t *p_dec, decoder_cc_desc_t * ); static void PacketizeReset( void *p_private, bool b_broken ); static block_t *PacketizeParse( void *p_private, bool *pb_ts_used, block_t * ); static int PacketizeValidate( void *p_private, block_t * ); +static block_t * PacketizeDrain( void *p_private ); static block_t *ParseMPEGBlock( decoder_t *, block_t * ); @@ -210,7 +211,7 @@ static int Open( vlc_object_t *p_this ) packetizer_Init( &p_sys->packetizer, p_mp2v_startcode, sizeof(p_mp2v_startcode), startcode_FindAnnexB, NULL, 0, 4, - PacketizeReset, PacketizeParse, PacketizeValidate, NULL, + PacketizeReset, PacketizeParse, PacketizeValidate, PacketizeDrain, p_dec ); p_sys->p_seq = NULL; @@ -591,6 +592,23 @@ static block_t *PacketizeParse( void *p_private, bool *pb_ts_used, block_t *p_bl return p_block; } +static block_t * PacketizeDrain( void *p_private ) +{ + decoder_t *p_dec = p_private; + decoder_sys_t *p_sys = p_dec->p_sys; + + if( p_sys->b_waiting_iframe || !p_sys->b_frame_slice ) + return NULL; + + block_t *p_out = OutputFrame( p_dec ); + if( p_out ) + { + p_out->i_flags |= p_sys->i_next_block_flags; + p_sys->i_next_block_flags = 0; + } + + return p_out; +} static int PacketizeValidate( void *p_private, block_t *p_au ) { _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
