[FFmpeg-cvslog] Merge commit '13ca5d34ba5c473211daaae0a101123bcaada3e6'

Mark Thompson git at videolan.org
Thu Feb 22 00:10:54 EET 2018


ffmpeg | branch: master | Mark Thompson <sw at jkqxz.net> | Wed Feb 21 22:05:15 2018 +0000| [b656fa710a34ec7c3b192c38344a2c470ff2eaf5] | committer: Mark Thompson

Merge commit '13ca5d34ba5c473211daaae0a101123bcaada3e6'

* commit '13ca5d34ba5c473211daaae0a101123bcaada3e6':
  cbs_h264: Add hack for pic_timing with no active SPS

Partially fixes #6896 - the sample stream from that ticket now works, but
more obscure cases can still fail.

Merged-by: Mark Thompson <sw at jkqxz.net>

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

 libavcodec/cbs_h264_syntax_template.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/libavcodec/cbs_h264_syntax_template.c b/libavcodec/cbs_h264_syntax_template.c
index 2d60273506..267f35ccb7 100644
--- a/libavcodec/cbs_h264_syntax_template.c
+++ b/libavcodec/cbs_h264_syntax_template.c
@@ -561,6 +561,22 @@ static int FUNC(sei_pic_timing)(CodedBitstreamContext *ctx, RWContext *rw,
 
     sps = h264->active_sps;
     if (!sps) {
+        // If there is exactly one possible SPS but it is not yet active
+        // then just assume that it should be the active one.
+        int i, k = -1;
+        for (i = 0; i < H264_MAX_SPS_COUNT; i++) {
+            if (h264->sps[i]) {
+                if (k >= 0) {
+                    k = -1;
+                    break;
+                }
+                k = i;
+            }
+        }
+        if (k >= 0)
+            sps = h264->sps[k];
+    }
+    if (!sps) {
         av_log(ctx->log_ctx, AV_LOG_ERROR,
                "No active SPS for pic_timing.\n");
         return AVERROR_INVALIDDATA;


======================================================================




More information about the ffmpeg-cvslog mailing list