vlc | branch: master | Francois Cartegnie <[email protected]> | Tue Sep 24 15:59:50 2019 +0200| [7793d7bb84da43929d14f9602d5babf0869fa52b] | committer: Francois Cartegnie
packetizer: hevc: add drain > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=7793d7bb84da43929d14f9602d5babf0869fa52b --- modules/packetizer/hevc.c | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/modules/packetizer/hevc.c b/modules/packetizer/hevc.c index 900c8647ee..fe919df4b2 100644 --- a/modules/packetizer/hevc.c +++ b/modules/packetizer/hevc.c @@ -114,6 +114,7 @@ static void PacketizeReset(void *p_private, bool b_broken); static block_t *PacketizeParse(void *p_private, bool *pb_ts_used, block_t *); static block_t *ParseNALBlock(decoder_t *, bool *pb_ts_used, block_t *); static int PacketizeValidate(void *p_private, block_t *); +static block_t * PacketizeDrain(void *); static bool ParseSEICallback( const hxxx_sei_data_t *, void * ); static block_t *GetCc( decoder_t *, decoder_cc_desc_t * ); static block_t *GetXPSCopy(decoder_sys_t *); @@ -213,7 +214,7 @@ static int Open(vlc_object_t *p_this) packetizer_Init(&p_sys->packetizer, p_hevc_startcode, sizeof(p_hevc_startcode), startcode_FindAnnexB, p_hevc_startcode, 1, 5, - PacketizeReset, PacketizeParse, PacketizeValidate, NULL, + PacketizeReset, PacketizeParse, PacketizeValidate, PacketizeDrain, p_dec); /* Copy properties */ @@ -995,6 +996,28 @@ static int PacketizeValidate( void *p_private, block_t *p_au ) return VLC_SUCCESS; } +static block_t * PacketizeDrain(void *p_private) +{ + decoder_t *p_dec = p_private; + decoder_sys_t *p_sys = p_dec->p_sys; + + block_t *p_out = NULL; + + if( p_sys->frame.p_chain && + p_sys->sets != MISSING && + p_sys->b_recovery_point ) + { + p_out = OutputQueues(p_sys, true); + if( p_out ) + { + p_out = GatherAndValidateChain(p_out); + if( p_out ) + SetOutputBlockProperties( p_dec, p_out ); + } + } + return p_out; +} + static bool ParseSEICallback( const hxxx_sei_data_t *p_sei_data, void *cbdata ) { decoder_t *p_dec = (decoder_t *) cbdata; _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
