AgeCommit message (Collapse)AuthorFilesLines
2012-11-16h264: introduce per-field POC in GstVaapiPictureH264.Gwenole Beauchesne1-38/+29
Use the POC member available in the GstVaapiPicture base class and get rid of the dependency on the local VAPictureH264 TopFieldOrderCnt and BottomFieldOrderCnt. Rather, use a simple field_poc[] array initialized to INT_MAX, so that to simplify picture POC calculation for non frame pictures.
2012-11-16h264: introduce GST_VAAPI_PICTURE_{SHORT,LONG}_TERM_REFERENCE flags.Gwenole Beauchesne1-44/+56
Further get rid of GstVaapiPictureH264-local VAPictureH264.flags for reference bits, thus simplifying the reference picture marking process to only track a single set of reference flags. Also introduce a new long_term_frame_idx member.
2012-11-16h264: introduce GST_VAAPI_PICTURE_FLAG_IDR flag.Gwenole Beauchesne1-13/+23
2012-11-16h264: fill in GstVaapiPicture structure.Gwenole Beauchesne1-57/+60
... and get rid of local VAPictureH264.flags fields in GstVaapiPictureH264.
2012-11-16h264: add vaapi_fill_picture() helper.Gwenole Beauchesne1-7/+44
Add vaapi_fill_picture() helper function to convert GstVaapiPictureH264 to VAPictureH264 structure. This is preparatory work to get rid of the local VAPictureH264 member in GstVaapiPictureH264.
2012-11-16h264: fix activation order of picture and sequence parameters.Gwenole Beauchesne1-128/+160
Delay ensure_context() until we actually need a VA context for allocating new VA surfaces, and then GstVaapiPictures, but also when a real activation of a new picture parameter set occurs, thus also implying an activation of the related sequence parameter set. The most important thing was to drop the global pps and sps pointers since they may not have matched the currently activated picture parameter or sequence parameter sets at the specified decode point. Anoter positive side-effect is that this cleans up all occurrences of decode_current_picture() to only keep those useful in decode_picture(), before a new picture is allocated, or in decode_sequence_end() when an end-of-stream or end-of-sequence condition occurred.
2012-11-16h264: fix detection of picture boundaries.Gwenole Beauchesne1-12/+92
Strictly follow the standard ( to detect the first VCL NAL unit of a primary coded picture.
2012-11-16h264: optimize handling of scaling lists.Gwenole Beauchesne1-39/+69
Don't copy scaling lists twice to an intermediate state. Rather, directly use the scaling lists from GstH264PPS since they would match those provided by SPS header, if necessary. i.e. if PPS-specific scaling lists are not available in the bitstream.
2012-11-16h264: simplify code when MMCO is 5.Gwenole Beauchesne1-71/+51
Remove exit_picture() and exit_picture_poc() since PicOrderCnt(CurrPic) is now updated accordingly to the standard. Besides, MMCO = 5 specific operations are moved up to exec_ref_pic_marking_adaptive_mmco_5().
2012-11-16h264: fix MMCO-based reference picture marking process.Gwenole Beauchesne1-21/+83
Fix adaptive memory control decoded reference picture marking process implementation for operations 2 to 6, thus also fixing support for long-term reference pictures.
2012-11-16h264: move MMCO handlers out of the loop (cosmetics).Gwenole Beauchesne1-50/+99
This change only splits each individual MMCO handler into several functions dedicated for each operation. This is needed to perform further work later on.
2012-11-16h264: add flag to compile with strict DPB ordering mode.Gwenole Beauchesne1-2/+9
Allow build with strict DPB ordering mode whereby evicted entries are replaced by the next entries, in order instead of optimizing it away with the last entry in the DPB. This is only useful for debugging purpose, against a reference SW decoder for example.
2012-11-16h264: drop extra code covered by built-in codecparsers.Gwenole Beauchesne1-25/+0
GstH264SliceHdr.n_emulation_prevention_bytes is bound to exist now that a newer version of codecparsers/ are used if the system provided one is now recent enough to have those required extensions.
2012-11-16h264: use pixel-aspect-ratio from SPS header.Simon Farnsworth1-0/+6
Propagate pixel-aspect-ratio determined by the GStreamer codecparser from the sequence headers. Signed-off-by: Simon Farnsworth <> Signed-off-by: Gwenole Beauchesne <>
2012-11-16h264: add decode_nalu() helper function.Gwenole Beauchesne1-36/+41
Split decode_buffer() into the core infrastructure that determines the NAL units contained in the adapter and the actual function that decodes the NAL unit.
2012-11-16h264: fix end-of-stream conditions (flush).Gwenole Beauchesne1-10/+22
Decode pending data in the adapter prior to processing the actual code for end-of-stream.
2012-11-16vc1: use framerate information from bitstream parser.Gwenole Beauchesne1-46/+5
2012-11-16vc1: use pixel-aspect-ratio from bitstream parser.Simon Farnsworth1-1/+8
Signed-off-by: Simon Farnsworth <> Signed-off-by: Gwenole Beauchesne <>
2012-11-16mpeg2: fix PAR calculation from commit 132922d.Sreerenj Balachandran3-5/+38
Invoke gst_mpeg_video_finalise_mpeg2_sequence_header() to get the correct PAR values. While doing so, require a newer version of the bitstream parser library. Note: it may be necessary to also parse the Sequence_Display_Extension() header. Signed-off-by: Sreerenj Balachandran <> Signed-off-by: Gwenole Beauchesne <>
2012-11-16mpeg2: use pixel-aspec-ratio information from bitstream parser.Simon Farnsworth1-0/+6
Signed-off-by: Simon Farnsworth <> Signed-off-by: Gwenole Beauchesne <>
2012-11-16mpeg2: add decode_packet() helper function.Gwenole Beauchesne1-76/+87
Split decode_buffer() into the core infrastructure that determines the packets contained in the adapter and the actual function that decodes the packet data.
2012-11-16mpeg2: fix end-of-stream conditions (flush).Gwenole Beauchesne1-6/+14
Decode pending data in the adapter prior to processing the actual code for end-of-stream. Initial code from Feng Yuan.
2012-11-16mpeg2: fix memory leak of empty packets.Gwenole Beauchesne1-12/+1
Fix memory leakage of empty packets, i.e. packets that only contain the start code prefix. In particular, free empty user-data packets. Besides, the codec parser will already fail gracefully if the packet to parse does not have the minimum required size. So, we can also completely drop the block of code that used to handle packets of size 4 (including the start code).
2012-11-16mpeg2: fix return value for "no-data" conditions.Gwenole Beauchesne1-9/+30
Fix return value when the second scan for start code fails. This means there is not enough data to determine the full extents of the current packet and the function shall return GST_VAAPI_DECODER_STATUS_ERROR_NO_DATA in this case, instead of GST_VAAPI_DECODER_STATUS_SUCCESS.
2012-11-16decoder: refine semantics of gst_vaapi_decoder_put_buffer().Gwenole Beauchesne1-2/+10
Improve the semantics for gst_vaapi_decoder_put_buffer() when an empty buffer is passed on. An empty buffer is a buffer with a NULL data pointer or with a size equals to zero. In this case, that buffer is simply skipped and the function returns TRUE. A NULL buffer argument still marks the end-of-stream.
2012-11-16decoder: drop unused functions.Gwenole Beauchesne2-38/+0
2012-11-16vaapidecode: flush buffers when receiving EOS.Wind Yuan1-0/+17
Signed-off-by: Gwenole Beauchesne <>
2012-11-16vaapidecode: fix compiler warnings.Gwenole Beauchesne1-3/+3
Don't care of the return value for gst_vaapi_decoder_put_buffer() during destruction of the element. Don't print out (uninitialised) error code when allocation of video buffer failed.
2012-11-16Add codecparsers submodule.Gwenole Beauchesne11-1067/+107
Backport from git master: c3b343f Add codecparsers submodule cee782a jpeg: use submodule sources 022e99e h264: use submodule sources d42d838 fix generation of symlinks d453297 update to gst-vaapi-rebased commit 73d6aab 18245b4 always build the VC-1 parser library 9ab3ce2 always build parserutils first
2012-11-16Fix build with the GNU gold linker.Gwenole Beauchesne1-0/+3
In particular, fix libgstvaapi-glx DSO dependencies to include libgstbase and libgstvideo libs, e.g. for gst_video_buffer_get_overlay_composition().
2012-11-16.gitignore: updates.Gwenole Beauchesne1-2/+6
2012-11-16autogen: fix check for gtkdocize and autoreconf.Gwenole Beauchesne1-2/+2
If gtkdocize or autoreconf programs were not found, then the script would fail to report that correctly because test -z was not passed any argument (empty string "" in this case).
2012-11-16configure: generate bzip2 tarballs in ustar format by default.Gwenole Beauchesne2-3/+3
2012-10-05Bump version for development.Gwenole Beauchesne1-2/+2
2012-10-050.4.0.Gwenole Beauchesne2-4/+4
2012-10-05debian: fix make dist for packaging.Gwenole Beauchesne1-19/+9
2012-10-05wayland: cosmetics (remove tabs).Gwenole Beauchesne2-5/+5
2012-10-05wayland: add support for windowed mode.Rob Bradford1-15/+42
Rather than always making the surface fullscreen instead implement the set_fullscreen vfunc on GstVaapiWindow and then set the shell surface fullscreen on not depending on that. Reviewed-by: Joe Konno <> Signed-off-by: Gwenole Beauchesne <>
2012-09-28Fix and document build dependencies better.Gwenole Beauchesne2-9/+16
2012-09-28debian: fix GStreamer build dependencies.Gwenole Beauchesne1-0/+1
2012-09-28debian: fix Wayland build dependencies.Gwenole Beauchesne2-2/+8
2012-09-28debian: fix conditional build of packages.Gwenole Beauchesne1-35/+41
Make it still possible to build package even if one of the build dependencies for a specific video backend is not available.
2012-09-27utils: drop unused GLX helpers.Gwenole Beauchesne2-65/+0
Remove helpers for GL_ARB_fragment_program and GL_ARB_multitexture extensions since they are not used throughout gstreamer-vaapi.
2012-09-27utils: fix build with <GL/glext.h> version >= 85.Gwenole Beauchesne1-0/+7
Mesa recently updated the <GL/glext.h> header version to Khronos version 85. This caused the PFNGLMULTITEXCOORD2FPROC definition to be moved out of the GL_VERSION_1_3_DEPRECATED block. However, since <GL/gl.h> also defines GL_VERSION_1_3 to 1, the definitions in <GL/glext.h> are then not enabled, thus leaving PFNGLMULTITEXCOORD2FPROC undefined as well. Provide a PFNGLMULTITEXCOORD2FPROC replacement as an interim solution for newer versions of the <GL/glext.h> header.
2012-09-26configure: update VA-API version requirements.Gwenole Beauchesne1-4/+4
VA/DRM and VA/Wayland API are now promoted to VA-API 0.33.0 (libva 1.1.0).
2012-09-21h264: review and report errors accordingly.Gwenole Beauchesne1-8/+8
Use GST_ERROR() to report real errors instead of hiding them into GST_DEBUG().
2012-09-20h264: exclusively use GstAdapter, drop sub-buffer hack.Gwenole Beauchesne1-39/+63
Maintaining the sub-buffer is rather suboptimal especially since we were also maintaining a GstAdapter. Now, we only use the GstAdapter thus requiring minor extra parsing when receiving avcC buffers.
2012-09-20README: updates.Gwenole Beauchesne1-6/+3
2012-09-20NEWS: updates.Gwenole Beauchesne1-3/+16
2012-09-20debian: fix packaging on recent Ubuntu platforms.Gwenole Beauchesne1-1/+1
Use explicit GStreamer plugins path.