vlc | branch: master | Francois Cartegnie <[email protected]> | Tue Aug 28 
23:51:42 2018 +0200| [81dfea36cc1566c2af21b5faef1af384449c19bf] | committer: 
Francois Cartegnie

packetizer: helper: handle AU_END flag

Using the AU_END hint, we don't need to wait the
next sync code as we know that last block is complete.
Helps cutting 1frame duration, which really helps in low fps.

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=81dfea36cc1566c2af21b5faef1af384449c19bf
---

 modules/packetizer/packetizer_helper.h | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/modules/packetizer/packetizer_helper.h 
b/modules/packetizer/packetizer_helper.h
index 69dad89d21..d9e43fa27e 100644
--- a/modules/packetizer/packetizer_helper.h
+++ b/modules/packetizer/packetizer_helper.h
@@ -171,7 +171,8 @@ static inline block_t *packetizer_Packetize( packetizer_t 
*p_pack, block_t **pp_
                                        NULL, &p_pack->i_offset, NULL );
                 p_pack->i_offset -= p_pack->bytestream.i_block_offset;
 
-                if( p_pack->i_offset <= (size_t)p_pack->i_startcode )
+                if( p_pack->i_offset <= (size_t)p_pack->i_startcode &&
+                    (p_pack->bytestream.p_block->i_flags & BLOCK_FLAG_AU_END) 
== 0 )
                     return NULL;
             }
 
@@ -184,6 +185,13 @@ static inline block_t *packetizer_Packetize( packetizer_t 
*p_pack, block_t **pp_
             p_pic->i_pts = p_block_bytestream->i_pts;
             p_pic->i_dts = p_block_bytestream->i_dts;
 
+            /* Do not wait for next sync code if notified block ends AU */
+            if( (p_block_bytestream->i_flags & BLOCK_FLAG_AU_END) &&
+                 p_block_bytestream->i_buffer == p_pack->i_offset )
+            {
+                p_pic->i_flags |= BLOCK_FLAG_AU_END;
+            }
+
             block_GetBytes( &p_pack->bytestream, 
&p_pic->p_buffer[p_pack->i_au_prepend],
                             p_pic->i_buffer - p_pack->i_au_prepend );
             if( p_pack->i_au_prepend > 0 )

_______________________________________________
vlc-commits mailing list
[email protected]
https://mailman.videolan.org/listinfo/vlc-commits

Reply via email to