Mesa (master): st/va: MPEG4 call vlVaDecoderFixMPEG4Startcode()

Leo Liu leoliu at kemper.freedesktop.org
Mon Nov 10 15:30:00 UTC 2014


Module: Mesa
Branch: master
Commit: 9d6253cf823276c09f2639cb70b37b1e9347ed59
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=9d6253cf823276c09f2639cb70b37b1e9347ed59

Author: Michael Varga <Michael.Varga at amd.com>
Date:   Thu Oct 23 10:45:20 2014 -0500

st/va: MPEG4 call vlVaDecoderFixMPEG4Startcode()

If the VOP and GOV headers were truncated they will be regenerated.

Signed-off-by: Michael Varga <Michael.Varga at amd.com>

---

 src/gallium/state_trackers/va/picture.c |    7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/src/gallium/state_trackers/va/picture.c b/src/gallium/state_trackers/va/picture.c
index 7107231..9b94b39 100644
--- a/src/gallium/state_trackers/va/picture.c
+++ b/src/gallium/state_trackers/va/picture.c
@@ -503,6 +503,13 @@ handleVASliceDataBufferType(vlVaContext *context, vlVaBuffer *buf)
          buffers[num_buffers] = (void *const)&start_code_vc1;
          sizes[num_buffers++] = sizeof(start_code_vc1);
       break;
+   case PIPE_VIDEO_FORMAT_MPEG4:
+      if (bufHasStartcode(buf, 0x000001, 24))
+         break;
+
+      vlVaDecoderFixMPEG4Startcode(context);
+      buffers[num_buffers] = (void *)context->mpeg4.start_code;
+      sizes[num_buffers++] = context->mpeg4.start_code_size;
    default:
       break;
    }




More information about the mesa-commit mailing list