vlc | branch: master | Francois Cartegnie <[email protected]> | Mon Jul 10 
13:57:41 2017 +0200| [e0be6843f71b1308bfa1e6882d63b5269afb0fef] | committer: 
Francois Cartegnie

codec: videotoolbox: restart from pps/sps change only on iframes

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

 modules/codec/videotoolbox.m | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/modules/codec/videotoolbox.m b/modules/codec/videotoolbox.m
index e7668d0b78..4dc7c920cf 100644
--- a/modules/codec/videotoolbox.m
+++ b/modules/codec/videotoolbox.m
@@ -1257,7 +1257,11 @@ static int DecodeBlock(decoder_t *p_dec, block_t 
*p_block)
             return VLCDEC_SUCCESS;
     }
 
-    if (b_config_changed)
+    frame_info_t *p_info = CreateReorderInfo(p_dec, p_block);
+    if(unlikely(!p_info))
+        goto skip;
+
+    if (b_config_changed && p_info->b_flush)
     {
         /* decoding didn't start yet, which is ok for H264, let's see
          * if we can use this block to get going */
@@ -1277,13 +1281,12 @@ static int DecodeBlock(decoder_t *p_dec, block_t 
*p_block)
             StartVideoToolbox(p_dec);
         }
         if (!p_sys->session)
+        {
+            free(p_info);
             goto skip;
+        }
     }
 
-    frame_info_t *p_info = CreateReorderInfo(p_dec, p_block);
-    if(unlikely(!p_info))
-        goto skip;
-
     CMSampleBufferRef sampleBuffer =
         VTSampleBufferCreate(p_dec, p_sys->videoFormatDescription, p_block);
     if (unlikely(!sampleBuffer))

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

Reply via email to