[FFmpeg-devel] [PATCH] lavc/h264_slice: move au_pps_id and current_sps_id assignment earlier

Michael Niedermayer michael at niedermayer.cc
Wed Jun 29 13:56:25 CEST 2016


On Wed, Jun 29, 2016 at 12:52:18PM +0200, Clément Bœsch wrote:
> From: Clément Bœsch <clement at stupeflix.com>
> 
> This will simplify the next merge commit from Libav.
> ---
>  libavcodec/h264_slice.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)

all files i tried still work with this patch
they also all work if i remove both fields entirely
as in:

commit 14492a72ca13f31a816e97481d9989a6ac6c792f
Author: Michael Niedermayer <michael at niedermayer.cc>
Date:   Wed Jun 29 13:37:02 2016 +0200

    remove au pps

    Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>

diff --git a/libavcodec/h264_slice.c b/libavcodec/h264_slice.c
index f7239ea..8206753 100644
--- a/libavcodec/h264_slice.c
+++ b/libavcodec/h264_slice.c
@@ -1139,12 +1139,6 @@ int ff_h264_decode_slice_header(H264Context *h, H264SliceContext *sl)
                pps_id);
         return AVERROR_INVALIDDATA;
     }
-    if (h->au_pps_id >= 0 && pps_id != h->au_pps_id) {
-        av_log(h->avctx, AV_LOG_ERROR,
-               "PPS change from %d to %d forbidden\n",
-               h->au_pps_id, pps_id);
-        return AVERROR_INVALIDDATA;
-    }

     pps = (const PPS*)h->ps.pps_list[pps_id]->data;

@@ -1201,7 +1195,7 @@ int ff_h264_decode_slice_header(H264Context *h, H264SliceContext *sl)
     pps = h->ps.pps;
     sps = h->ps.sps;

-    h->au_pps_id = pps_id;
+

     must_reinit = (h->context_initialized &&
                     (   16*sps->mb_width != h->avctx->coded_width

commit e08fcc0c7e227bf2d42ebeb4b5c797bd39d8a6ce
Author: Michael Niedermayer <michael at niedermayer.cc>
Date:   Wed Jun 29 13:36:15 2016 +0200

    remvoe current_sps_id

    Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>

diff --git a/libavcodec/h264_slice.c b/libavcodec/h264_slice.c
index 0b5079c..f7239ea 100644
--- a/libavcodec/h264_slice.c
+++ b/libavcodec/h264_slice.c
@@ -1171,8 +1171,7 @@ int ff_h264_decode_slice_header(H264Context *h, H264SliceContext *sl)
         }
     }

-    if (h->ps.sps != (const SPS*)h->ps.sps_list[h->ps.pps->sps_id]->data ||
-        pps->sps_id != h->current_sps_id) {
+    if (h->ps.sps != (const SPS*)h->ps.sps_list[h->ps.pps->sps_id]->data) {

         if (!first_slice) {
             av_log(h->avctx, AV_LOG_ERROR,
@@ -1203,7 +1202,6 @@ int ff_h264_decode_slice_header(H264Context *h, H264SliceContext *sl)
     sps = h->ps.sps;

     h->au_pps_id = pps_id;
-    h->current_sps_id = h->ps.pps->sps_id;

     must_reinit = (h->context_initialized &&
                     (   16*sps->mb_width != h->avctx->coded_width


[...]

-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

The misfortune of the wise is better than the prosperity of the fool.
-- Epicurus
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20160629/8f7a5420/attachment.sig>


More information about the ffmpeg-devel mailing list