vdpauh264dec: rename GstVdpH264Frame to GstH264Frame

This commit is contained in:
Carl-Anton Ingmarsson 2010-06-27 01:27:28 +02:00
parent 00fd85c0f5
commit ec815085bf
6 changed files with 76 additions and 77 deletions

View file

@ -11,7 +11,7 @@ libgstvdpau_la_SOURCES = \
mpeg/gstvdpmpegdec.c \
h264/gstnalreader.c \
h264/gsth264parser.c \
h264/gstvdph264frame.c \
h264/gsth264frame.c \
h264/gsth264dpb.c \
h264/gstvdph264dec.c
@ -34,6 +34,6 @@ noinst_HEADERS = \
mpeg/gstvdpmpegdec.h \
h264/gstnalreader.h \
h264/gsth264parser.h \
h264/gstvdph264frame.h \
h264/gsth264frame.h \
h264/gsth264dpb.h \
h264/gstvdph264dec.h
h264/gstvdph264dec.h

View file

@ -41,12 +41,12 @@ void
gst_h264_dpb_fill_reference_frames (GstH264DPB * dpb,
VdpReferenceFrameH264 reference_frames[16])
{
GstVdpH264Frame **frames;
GstH264Frame **frames;
guint i;
frames = dpb->frames;
for (i = 0; i < dpb->n_frames; i++) {
GstVdpH264Frame *frame = frames[i];
GstH264Frame *frame = frames[i];
reference_frames[i].surface =
GST_VDP_VIDEO_BUFFER (GST_VIDEO_FRAME_CAST (frame)->
@ -70,7 +70,7 @@ gst_h264_dpb_fill_reference_frames (GstH264DPB * dpb,
static void
gst_h264_dpb_remove (GstH264DPB * dpb, guint idx)
{
GstVdpH264Frame **frames;
GstH264Frame **frames;
guint i;
frames = dpb->frames;
@ -84,7 +84,7 @@ gst_h264_dpb_remove (GstH264DPB * dpb, guint idx)
static void
gst_h264_dpb_output (GstH264DPB * dpb, guint idx)
{
GstVdpH264Frame *frame = dpb->frames[idx];
GstH264Frame *frame = dpb->frames[idx];
gst_video_frame_ref (GST_VIDEO_FRAME_CAST (frame));
dpb->output (dpb, frame, dpb->user_data);
@ -97,7 +97,7 @@ gst_h264_dpb_output (GstH264DPB * dpb, guint idx)
static gboolean
gst_h264_dpb_bump (GstH264DPB * dpb, guint poc)
{
GstVdpH264Frame **frames;
GstH264Frame **frames;
guint i;
gint bump_idx;
@ -127,9 +127,9 @@ gst_h264_dpb_bump (GstH264DPB * dpb, guint poc)
}
gboolean
gst_h264_dpb_add (GstH264DPB * dpb, GstVdpH264Frame * h264_frame)
gst_h264_dpb_add (GstH264DPB * dpb, GstH264Frame * h264_frame)
{
GstVdpH264Frame **frames;
GstH264Frame **frames;
GST_DEBUG ("add frame with poc: %d", h264_frame->poc);
@ -179,7 +179,7 @@ gst_h264_dpb_flush (GstH264DPB * dpb, gboolean output)
void
gst_h264_dpb_mark_sliding (GstH264DPB * dpb)
{
GstVdpH264Frame **frames;
GstH264Frame **frames;
guint i;
gint mark_idx = -1;
@ -211,7 +211,7 @@ void
gst_h264_dpb_mark_long_term (GstH264DPB * dpb, guint16 pic_num,
guint16 long_term_frame_idx)
{
GstVdpH264Frame **frames;
GstH264Frame **frames;
guint i;
gint mark_idx = -1;
@ -233,7 +233,7 @@ gst_h264_dpb_mark_long_term (GstH264DPB * dpb, guint16 pic_num,
void
gst_h264_dpb_mark_short_term_unused (GstH264DPB * dpb, guint16 pic_num)
{
GstVdpH264Frame **frames;
GstH264Frame **frames;
guint i;
gint mark_idx = -1;
@ -257,7 +257,7 @@ gst_h264_dpb_mark_short_term_unused (GstH264DPB * dpb, guint16 pic_num)
void
gst_h264_dpb_mark_long_term_unused (GstH264DPB * dpb, guint16 long_term_pic_num)
{
GstVdpH264Frame **frames;
GstH264Frame **frames;
guint i;
gint mark_idx = -1;
@ -281,7 +281,7 @@ gst_h264_dpb_mark_long_term_unused (GstH264DPB * dpb, guint16 long_term_pic_num)
void
gst_h264_dpb_mark_all_unused (GstH264DPB * dpb)
{
GstVdpH264Frame **frames;
GstH264Frame **frames;
guint i;
frames = dpb->frames;
@ -345,7 +345,7 @@ gst_h264_dpb_set_property (GObject * object, guint property_id,
case PROP_MAX_LONGTERM_IDX:
{
GstVdpH264Frame **frames;
GstH264Frame **frames;
guint i;
dpb->max_longterm_frame_idx = g_value_get_int (value);

View file

@ -25,7 +25,7 @@
#include "../gstvdp/gstvdpvideobuffer.h"
#include "gstvdph264frame.h"
#include "gsth264frame.h"
G_BEGIN_DECLS
@ -42,14 +42,14 @@ G_BEGIN_DECLS
typedef struct _GstH264DPB GstH264DPB;
typedef struct _GstH264DPBClass GstH264DPBClass;
typedef void (*GstH264DPBOutputFunc) (GstH264DPB *dpb, GstVdpH264Frame *h264_frame, gpointer user_data);
typedef void (*GstH264DPBOutputFunc) (GstH264DPB *dpb, GstH264Frame *h264_frame, gpointer user_data);
struct _GstH264DPB
{
GObject parent_instance;
/* private */
GstVdpH264Frame *frames[MAX_DPB_SIZE];
GstH264Frame *frames[MAX_DPB_SIZE];
guint n_frames;
guint max_frames;
@ -67,7 +67,7 @@ struct _GstH264DPBClass
void
gst_h264_dpb_fill_reference_frames (GstH264DPB *dpb, VdpReferenceFrameH264 reference_frames[16]);
gboolean gst_h264_dpb_add (GstH264DPB *dpb, GstVdpH264Frame *h264_frame);
gboolean gst_h264_dpb_add (GstH264DPB *dpb, GstH264Frame *h264_frame);
void gst_h264_dpb_flush (GstH264DPB *dpb, gboolean output);
void gst_h264_dpb_mark_sliding (GstH264DPB *dpb);

View file

@ -22,83 +22,83 @@
#include "config.h"
#endif
#include "gstvdph264frame.h"
#include "gsth264frame.h"
GST_DEBUG_CATEGORY_STATIC (gst_vdp_h264_frame_debug);
#define GST_CAT_DEFAULT gst_vdp_h264_frame_debug
GST_DEBUG_CATEGORY_STATIC (gst_h264_frame_debug);
#define GST_CAT_DEFAULT gst_h264_frame_debug
#define DEBUG_INIT(bla) \
GST_DEBUG_CATEGORY_INIT (gst_vdp_h264_frame_debug, "gstvdph264frame", 0, "Video Frame");
GST_DEBUG_CATEGORY_INIT (gst_h264_frame_debug, "gsth264frame", 0, "H264 Frame");
void
gst_vdp_h264_frame_add_slice (GstVdpH264Frame * h264_frame, GstBuffer * buf)
gst_h264_frame_add_slice (GstH264Frame * h264_frame, GstBuffer * buf)
{
gst_buffer_ref (buf);
g_ptr_array_add (h264_frame->slices, buf);
}
GstVdpH264Frame *
gst_vdp_h264_frame_new (void)
GstH264Frame *
gst_h264_frame_new (void)
{
GstVdpH264Frame *frame;
GstH264Frame *frame;
frame = (GstVdpH264Frame *) gst_mini_object_new (GST_TYPE_VDP_H264_FRAME);
frame = (GstH264Frame *) gst_mini_object_new (GST_TYPE_H264_FRAME);
return frame;
}
static GObjectClass *gst_vdp_h264_frame_parent_class;
static GObjectClass *gst_h264_frame_parent_class;
static void
gst_vdp_h264_frame_finalize (GstVdpH264Frame * h264_frame)
gst_h264_frame_finalize (GstH264Frame * h264_frame)
{
g_ptr_array_unref (h264_frame->slices);
GST_MINI_OBJECT_CLASS (gst_vdp_h264_frame_parent_class)->finalize
GST_MINI_OBJECT_CLASS (gst_h264_frame_parent_class)->finalize
(GST_MINI_OBJECT (h264_frame));
}
static void
gst_vdp_h264_frame_init (GstVdpH264Frame * h264_frame, gpointer g_class)
gst_h264_frame_init (GstH264Frame * h264_frame, gpointer g_class)
{
h264_frame->slices = g_ptr_array_new_with_free_func (
(GDestroyNotify) gst_buffer_unref);
}
static void
gst_vdp_h264_frame_class_init (gpointer g_class, gpointer class_data)
gst_h264_frame_class_init (gpointer g_class, gpointer class_data)
{
GstMiniObjectClass *mini_object_class = GST_MINI_OBJECT_CLASS (g_class);
gst_vdp_h264_frame_parent_class = g_type_class_peek_parent (g_class);
gst_h264_frame_parent_class = g_type_class_peek_parent (g_class);
mini_object_class->finalize = (GstMiniObjectFinalizeFunction)
gst_vdp_h264_frame_finalize;
gst_h264_frame_finalize;
}
GType
gst_vdp_h264_frame_get_type (void)
gst_h264_frame_get_type (void)
{
static GType _gst_vdp_h264_frame_type = 0;
static GType _gst_h264_frame_type = 0;
if (G_UNLIKELY (_gst_vdp_h264_frame_type == 0)) {
if (G_UNLIKELY (_gst_h264_frame_type == 0)) {
static const GTypeInfo info = {
sizeof (GstVdpH264FrameClass),
sizeof (GstH264FrameClass),
NULL,
NULL,
gst_vdp_h264_frame_class_init,
gst_h264_frame_class_init,
NULL,
NULL,
sizeof (GstVdpH264Frame),
sizeof (GstH264Frame),
0,
(GInstanceInitFunc) gst_vdp_h264_frame_init,
(GInstanceInitFunc) gst_h264_frame_init,
NULL
};
_gst_vdp_h264_frame_type = g_type_register_static (GST_TYPE_VIDEO_FRAME,
"GstVdpH264Frame", &info, 0);
_gst_h264_frame_type = g_type_register_static (GST_TYPE_VIDEO_FRAME,
"GstH264Frame", &info, 0);
DEBUG_INIT ();
}
return _gst_vdp_h264_frame_type;
return _gst_h264_frame_type;
}

View file

@ -18,8 +18,8 @@
* Boston, MA 02111-1307, USA.
*/
#ifndef _GST_VDP_H264_FRAME_H_
#define _GST_VDP_H264_FRAME_H_
#ifndef _GST_H264_FRAME_H_
#define _GST_H264_FRAME_H_
#include <gst/gst.h>
@ -27,17 +27,17 @@
#include "gsth264parser.h"
#define GST_TYPE_VDP_H264_FRAME (gst_vdp_h264_frame_get_type())
#define GST_IS_VDP_H264_FRAME(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_VDP_H264_FRAME))
#define GST_VDP_H264_FRAME(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_VDP_H264_FRAME, GstVdpH264Frame))
#define GST_VDP_H264_FRAME_CAST(obj) ((GstVdpH264Frame *)obj)
#define GST_TYPE_H264_FRAME (gst_h264_frame_get_type())
#define GST_IS_H264_FRAME(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_H264_FRAME))
#define GST_H264_FRAME(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_H264_FRAME, GstH264Frame))
#define GST_H264_FRAME_CAST(obj) ((GstH264Frame *)obj)
#define GST_VDP_H264_FRAME_GOT_PRIMARY GST_VIDEO_FRAME_FLAG_LAST
#define GST_H264_FRAME_GOT_PRIMARY GST_VIDEO_FRAME_FLAG_LAST
typedef struct _GstVdpH264Frame GstVdpH264Frame;
typedef struct _GstVdpH264FrameClass GstVdpH264FrameClass;
typedef struct _GstH264Frame GstH264Frame;
typedef struct _GstH264FrameClass GstH264FrameClass;
struct _GstVdpH264Frame
struct _GstH264Frame
{
GstVideoFrame video_frame;
@ -51,15 +51,15 @@ struct _GstVdpH264Frame
gboolean output_needed;
};
struct _GstVdpH264FrameClass
struct _GstH264FrameClass
{
GstVideoFrameClass video_frame_class;
};
void gst_vdp_h264_frame_add_slice (GstVdpH264Frame *h264_frame, GstBuffer *buf);
void gst_h264_frame_add_slice (GstH264Frame *h264_frame, GstBuffer *buf);
GstVdpH264Frame *gst_vdp_h264_frame_new (void);
GstH264Frame *gst_h264_frame_new (void);
GType gst_vdp_h264_frame_get_type (void);
GType gst_h264_frame_get_type (void);
#endif

View file

@ -26,7 +26,7 @@
#include <gst/base/gstbitreader.h>
#include <string.h>
#include "gstvdph264frame.h"
#include "gsth264frame.h"
#include "gstvdph264dec.h"
@ -152,7 +152,7 @@ gst_vdp_h264_dec_set_sink_caps (GstBaseVideoDecoder * base_video_decoder,
}
static void
gst_vdp_h264_dec_output (GstH264DPB * dpb, GstVdpH264Frame * h264_frame,
gst_vdp_h264_dec_output (GstH264DPB * dpb, GstH264Frame * h264_frame,
gpointer user_data)
{
GstBaseVideoDecoder *base_video_decoder = (GstBaseVideoDecoder *) user_data;
@ -197,7 +197,7 @@ gst_vdp_h264_dec_calculate_poc (GstVdpH264Dec * h264_dec, GstH264Slice * slice)
static void
gst_vdp_h264_dec_init_frame_info (GstVdpH264Dec * h264_dec,
GstVdpH264Frame * h264_frame)
GstH264Frame * h264_frame)
{
GstH264Slice *slice;
@ -239,7 +239,7 @@ gst_vdp_h264_dec_init_frame_info (GstVdpH264Dec * h264_dec,
}
static gboolean
gst_vdp_h264_dec_idr (GstVdpH264Dec * h264_dec, GstVdpH264Frame * h264_frame)
gst_vdp_h264_dec_idr (GstVdpH264Dec * h264_dec, GstH264Frame * h264_frame)
{
GstH264Slice *slice;
GstH264Sequence *seq;
@ -320,8 +320,7 @@ gst_vdp_h264_dec_idr (GstVdpH264Dec * h264_dec, GstVdpH264Frame * h264_frame)
}
static VdpPictureInfoH264
gst_vdp_h264_dec_fill_info (GstVdpH264Dec * h264_dec,
GstVdpH264Frame * h264_frame)
gst_vdp_h264_dec_fill_info (GstVdpH264Dec * h264_dec, GstH264Frame * h264_frame)
{
GstH264Slice *slice;
GstH264Picture *pic;
@ -380,7 +379,7 @@ gst_vdp_h264_dec_fill_info (GstVdpH264Dec * h264_dec,
static VdpBitstreamBuffer *
gst_vdp_h264_dec_create_bitstream_buffers (GstVdpH264Dec * h264_dec,
GstVdpH264Frame * h264_frame, guint * n_bufs)
GstH264Frame * h264_frame, guint * n_bufs)
{
VdpBitstreamBuffer *bufs;
@ -434,7 +433,7 @@ gst_vdp_h264_dec_handle_frame (GstBaseVideoDecoder * base_video_decoder,
{
GstVdpH264Dec *h264_dec = GST_VDP_H264_DEC (base_video_decoder);
GstVdpH264Frame *h264_frame;
GstH264Frame *h264_frame;
GstH264Slice *slice;
GstH264Picture *pic;
GstH264Sequence *seq;
@ -451,7 +450,7 @@ gst_vdp_h264_dec_handle_frame (GstBaseVideoDecoder * base_video_decoder,
GST_DEBUG ("handle_frame");
h264_frame = (GstVdpH264Frame *) frame;
h264_frame = (GstH264Frame *) frame;
slice = &h264_frame->slice_hdr;
pic = slice->picture;
@ -726,7 +725,7 @@ gst_vdp_h264_dec_parse_data (GstBaseVideoDecoder * base_video_decoder,
gst_base_video_decoder_frame_start (base_video_decoder, buf);
}
if (GST_VIDEO_FRAME_FLAG_IS_SET (frame, GST_VDP_H264_FRAME_GOT_PRIMARY)) {
if (GST_VIDEO_FRAME_FLAG_IS_SET (frame, GST_H264_FRAME_GOT_PRIMARY)) {
if (nal_unit.type == GST_NAL_SPS || nal_unit.type == GST_NAL_PPS ||
nal_unit.type == GST_NAL_SEI ||
(nal_unit.type >= 14 && nal_unit.type <= 18)) {
@ -743,12 +742,12 @@ gst_vdp_h264_dec_parse_data (GstBaseVideoDecoder * base_video_decoder,
goto invalid_packet;
if (slice.redundant_pic_cnt == 0) {
if (GST_VIDEO_FRAME_FLAG_IS_SET (frame, GST_VDP_H264_FRAME_GOT_PRIMARY)) {
if (GST_VIDEO_FRAME_FLAG_IS_SET (frame, GST_H264_FRAME_GOT_PRIMARY)) {
GstH264Slice *p_slice;
guint8 pic_order_cnt_type, p_pic_order_cnt_type;
gboolean finish_frame = FALSE;
p_slice = &(GST_VDP_H264_FRAME_CAST (frame)->slice_hdr);
p_slice = &(GST_H264_FRAME_CAST (frame)->slice_hdr);
pic_order_cnt_type = slice.picture->sequence->pic_order_cnt_type;
p_pic_order_cnt_type = p_slice->picture->sequence->pic_order_cnt_type;
@ -783,16 +782,16 @@ gst_vdp_h264_dec_parse_data (GstBaseVideoDecoder * base_video_decoder,
}
}
if (!GST_VIDEO_FRAME_FLAG_IS_SET (frame, GST_VDP_H264_FRAME_GOT_PRIMARY)) {
if (!GST_VIDEO_FRAME_FLAG_IS_SET (frame, GST_H264_FRAME_GOT_PRIMARY)) {
if (GST_H264_IS_I_SLICE (slice.type)
|| GST_H264_IS_SI_SLICE (slice.type))
GST_VIDEO_FRAME_FLAG_SET (frame, GST_VIDEO_FRAME_FLAG_KEYFRAME);
GST_VDP_H264_FRAME_CAST (frame)->slice_hdr = slice;
GST_VIDEO_FRAME_FLAG_SET (frame, GST_VDP_H264_FRAME_GOT_PRIMARY);
GST_H264_FRAME_CAST (frame)->slice_hdr = slice;
GST_VIDEO_FRAME_FLAG_SET (frame, GST_H264_FRAME_GOT_PRIMARY);
}
}
gst_vdp_h264_frame_add_slice ((GstVdpH264Frame *) frame, buf);
gst_h264_frame_add_slice ((GstH264Frame *) frame, buf);
}
if (nal_unit.type == GST_NAL_SPS) {
@ -818,7 +817,7 @@ invalid_packet:
static GstVideoFrame *
gst_vdp_h264_dec_create_frame (GstBaseVideoDecoder * base_video_decoder)
{
return GST_VIDEO_FRAME_CAST (gst_vdp_h264_frame_new ());
return GST_VIDEO_FRAME_CAST (gst_h264_frame_new ());
}
static gboolean