Hi,
On 2012-12-12 16:20:50 -0800, Ronald S. Bultje wrote:
> Hi,
> 
> On Wed, Dec 12, 2012 at 12:30 PM, Janne Grunau <janne-li...@jannau.net> wrote:
> > ---
> >  libavcodec/h264.c | 13 ++++++++++++-
> >  libavcodec/h264.h |  1 +
> >  2 files changed, 13 insertions(+), 1 deletion(-)
> 
> In what situation does this happen?

One situation is data partitioning. NAL_DPA calls decode_slice_header
and can start a new frame but wasn't counted as needed frame. See
attached patch. With a little luck it make this patch and patch 12/15
obsolete.

Janne

---8<---

Since a NAL_DPA can start a new frame it has to be handled before
ff_thread_finish_setup is called.
---
 libavcodec/h264.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/libavcodec/h264.c b/libavcodec/h264.c
index b863c41..75192ac 100644
--- a/libavcodec/h264.c
+++ b/libavcodec/h264.c
@@ -3929,6 +3929,7 @@ static int decode_nal_units(H264Context *h, const uint8_t 
*buf, int buf_size)
                 case NAL_PPS:
                     nals_needed = nal_index;
                     break;
+                case NAL_DPA:
                 case NAL_IDR_SLICE:
                 case NAL_SLICE:
                     init_get_bits(&hx->s.gb, ptr, bit_length);
-- 
1.7.12.4

_______________________________________________
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to