gstmpeg4parser.h 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583
  1. /*
  2. * GStreamer
  3. * Copyright (C) 2009 Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>
  4. *
  5. * This library is free software; you can redistribute it and/or
  6. * modify it under the terms of the GNU Library General Public
  7. * License as published by the Free Software Foundation; either
  8. * version 2 of the License, or (at your option) any later version.
  9. *
  10. * This library is distributed in the hope that it will be useful,
  11. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  13. * Library General Public License for more details.
  14. *
  15. * You should have received a copy of the GNU Library General Public
  16. * License along with this library; if not, write to the
  17. * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
  18. * Boston, MA 02110-1301, USA.
  19. */
  20. #ifndef __GST_MPEG4UTIL_H__
  21. #define __GST_MPEG4UTIL_H__
  22. #include <gst/gst.h>
  23. G_BEGIN_DECLS
  24. typedef struct _GstMpeg4VisualObjectSequence GstMpeg4VisualObjectSequence;
  25. typedef struct _GstMpeg4VisualObject GstMpeg4VisualObject;
  26. typedef struct _GstMpeg4VideoObjectLayer GstMpeg4VideoObjectLayer;
  27. typedef struct _GstMpeg4GroupOfVOP GstMpeg4GroupOfVOP;
  28. typedef struct _GstMpeg4VideoObjectPlane GstMpeg4VideoObjectPlane;
  29. typedef struct _GstMpeg4VideoSignalType GstMpeg4VideoSignalType;
  30. typedef struct _GstMpeg4VideoPlaneShortHdr GstMpeg4VideoPlaneShortHdr;
  31. typedef struct _GstMpeg4VideoPacketHdr GstMpeg4VideoPacketHdr;
  32. typedef struct _GstMpeg4SpriteTrajectory GstMpeg4SpriteTrajectory;
  33. typedef struct _GstMpeg4Packet GstMpeg4Packet;
  34. /**
  35. * GstMpeg4StartCode:
  36. *
  37. * Defines the different startcodes present in the bitstream as
  38. * defined in: Table 6-3 — Start code values
  39. */
  40. typedef enum
  41. {
  42. GST_MPEG4_VIDEO_OBJ_FIRST = 0x00,
  43. GST_MPEG4_VIDEO_OBJ_LAST = 0x1f,
  44. GST_MPEG4_VIDEO_LAYER_FIRST = 0x20,
  45. GST_MPEG4_VIDEO_LAYER_LAST = 0x2f,
  46. GST_MPEG4_VISUAL_OBJ_SEQ_START = 0xb0,
  47. GST_MPEG4_VISUAL_OBJ_SEQ_END = 0xb1,
  48. GST_MPEG4_USER_DATA = 0xb2,
  49. GST_MPEG4_GROUP_OF_VOP = 0xb3,
  50. GST_MPEG4_VIDEO_SESSION_ERR = 0xb4,
  51. GST_MPEG4_VISUAL_OBJ = 0xb5,
  52. GST_MPEG4_VIDEO_OBJ_PLANE = 0xb6,
  53. GST_MPEG4_FBA = 0xba,
  54. GST_MPEG4_FBA_PLAN = 0xbb,
  55. GST_MPEG4_MESH = 0xbc,
  56. GST_MPEG4_MESH_PLAN = 0xbd,
  57. GST_MPEG4_STILL_TEXTURE_OBJ = 0xbe,
  58. GST_MPEG4_TEXTURE_SPATIAL = 0xbf,
  59. GST_MPEG4_TEXTURE_SNR_LAYER = 0xc0,
  60. GST_MPEG4_TEXTURE_TILE = 0xc1,
  61. GST_MPEG4_SHAPE_LAYER = 0xc2,
  62. GST_MPEG4_STUFFING = 0xc3,
  63. GST_MPEG4_SYSTEM_FIRST = 0xc6,
  64. GST_MPEG4_SYSTEM_LAST = 0xff,
  65. GST_MPEG4_RESYNC = 0xfff
  66. } GstMpeg4StartCode;
  67. /**
  68. * GstMpeg4VisualObjectType:
  69. *
  70. * Defines the different visual object types as
  71. * defined in: Table 6-5 -- Meaning of visual object type
  72. */
  73. typedef enum {
  74. GST_MPEG4_VIDEO_ID = 0x01,
  75. GST_MPEG4_STILL_TEXTURE_ID = 0x02,
  76. GST_MPEG4_STILL_MESH_ID = 0x03,
  77. GST_MPEG4_STILL_FBA_ID = 0x04,
  78. GST_MPEG4_STILL_3D_MESH_ID = 0x05,
  79. /*... reserved */
  80. } GstMpeg4VisualObjectType;
  81. /**
  82. * GstMpeg4AspectRatioInfo:
  83. * @GST_MPEG4_SQUARE: 1:1 square
  84. * @GST_MPEG4_625_TYPE_4_3: 12:11 (625-type for 4:3 picture)
  85. * @GST_MPEG4_525_TYPE_4_3: 10:11 (525-type for 4:3 picture)
  86. * @GST_MPEG4_625_TYPE_16_9: 16:11 (625-type stretched for 16:9 picture)
  87. * @GST_MPEG4_525_TYPE_16_9: 40:33 (525-type stretched for 16:9 picture)
  88. * @GST_MPEG4_EXTENDED_PAR: Extended par
  89. *
  90. * Defines the different pixel aspect ratios as
  91. * defined in: Table 6-12 -- Meaning of pixel aspect ratio
  92. */
  93. typedef enum {
  94. GST_MPEG4_SQUARE = 0x01,
  95. GST_MPEG4_625_TYPE_4_3 = 0x02,
  96. GST_MPEG4_525_TYPE_4_3 = 0x03,
  97. GST_MPEG4_625_TYPE_16_9 = 0x04,
  98. GST_MPEG4_525_TYPE_16_9 = 0x05,
  99. GST_MPEG4_EXTENDED_PAR = 0x0f,
  100. } GstMpeg4AspectRatioInfo;
  101. /**
  102. * GstMpeg4ParseResult:
  103. * @GST_MPEG4_PARSER_OK: The parsing went well
  104. * @GST_MPEG4_PARSER_BROKEN_DATA: The bitstream was broken
  105. * @GST_MPEG4_PARSER_NO_PACKET: There was no packet in the buffer
  106. * @GST_MPEG4_PARSER_NO_PACKET_END: There was no packet end in the buffer
  107. * @GST_MPEG4_PARSER_NO_PACKET_ERROR: An error accured durint the parsing
  108. *
  109. * Result type of any parsing function.
  110. */
  111. typedef enum {
  112. GST_MPEG4_PARSER_OK,
  113. GST_MPEG4_PARSER_BROKEN_DATA,
  114. GST_MPEG4_PARSER_NO_PACKET,
  115. GST_MPEG4_PARSER_NO_PACKET_END,
  116. GST_MPEG4_PARSER_ERROR,
  117. } GstMpeg4ParseResult;
  118. /**
  119. * GstMpeg4VideoObjectCodingType:
  120. * @GST_MPEG4_I_VOP: intra-coded (I)
  121. * @GST_MPEG4_P_VOP: predictive-coded (P)
  122. * @GST_MPEG4_B_VOP: bidirectionally-predictive-coded (B)
  123. * @GST_MPEG4_S_VOP: sprite (S)
  124. *
  125. * The vop coding types as defined in:
  126. * Table 6-20 -- Meaning of vop_coding_type
  127. */
  128. typedef enum {
  129. GST_MPEG4_I_VOP = 0x0,
  130. GST_MPEG4_P_VOP = 0x1,
  131. GST_MPEG4_B_VOP = 0x2,
  132. GST_MPEG4_S_VOP = 0x3
  133. } GstMpeg4VideoObjectCodingType;
  134. /**
  135. * GstMpeg4ChromaFormat:
  136. *
  137. * The chroma format in use as
  138. * defined in: Table 6-13 -- Meaning of chroma_format
  139. */
  140. typedef enum {
  141. /* Other value are reserved */
  142. GST_MPEG4_CHROMA_4_2_0 = 0x01
  143. } GstMpeg4ChromaFormat;
  144. /**
  145. * GstMpeg4VideoObjectLayerShape:
  146. *
  147. * The different video object layer shapes as defined in:
  148. * Table 6-16 — Video Object Layer shape type
  149. */
  150. typedef enum {
  151. GST_MPEG4_RECTANGULAR,
  152. GST_MPEG4_BINARY,
  153. GST_MPEG4_BINARY_ONLY,
  154. GST_MPEG4_GRAYSCALE
  155. } GstMpeg4VideoObjectLayerShape;
  156. /**
  157. * GstMpeg4SpriteEnable:
  158. *
  159. * Indicates the usage of static sprite coding
  160. * or global motion compensation (GMC) as defined in:
  161. * Table V2 - 2 -- Meaning of sprite_enable codewords
  162. */
  163. typedef enum {
  164. GST_MPEG4_SPRITE_UNUSED,
  165. GST_MPEG4_SPRITE_STATIC,
  166. GST_MPEG4_SPRITE_GMG
  167. } GstMpeg4SpriteEnable;
  168. /**
  169. * GstMpeg4Profile:
  170. *
  171. * Different defined profiles as defined in:
  172. * 9- Profiles and levels
  173. *
  174. * It is computed using:
  175. * Table G.1 — FLC table for profile_and_level_indication
  176. */
  177. typedef enum {
  178. GST_MPEG4_PROFILE_CORE,
  179. GST_MPEG4_PROFILE_MAIN,
  180. GST_MPEG4_PROFILE_N_BIT,
  181. GST_MPEG4_PROFILE_SIMPLE,
  182. GST_MPEG4_PROFILE_HYBRID,
  183. GST_MPEG4_PROFILE_RESERVED,
  184. GST_MPEG4_PROFILE_SIMPLE_FBA,
  185. GST_MPEG4_PROFILE_CORE_STUDIO,
  186. GST_MPEG4_PROFILE_SIMPLE_STUDIO,
  187. GST_MPEG4_PROFILE_CORE_SCALABLE,
  188. GST_MPEG4_PROFILE_ADVANCED_CORE,
  189. GST_MPEG4_PROFILE_ADVANCED_SIMPLE,
  190. GST_MPEG4_PROFILE_SIMPLE_SCALABLE,
  191. GST_MPEG4_PROFILE_SCALABLE_TEXTURE,
  192. GST_MPEG4_PROFILE_SIMPLE_FACE_ANIMATION,
  193. GST_MPEG4_PROFILE_BASIC_ANIMATED_TEXTURE,
  194. GST_MPEG4_PROFILE_ADVANCED_REALTIME_SIMPLE,
  195. GST_MPEG4_PROFILE_ADVANCED_SCALABLE_TEXTURE,
  196. GST_MPEG4_PROFILE_FINE_GRANULARITY_SCALABLE,
  197. GST_MPEG4_PROFILE_ADVANCED_CODING_EFFICIENCY
  198. } GstMpeg4Profile;
  199. /**
  200. * GstMpeg4Level:
  201. *
  202. * Different levels as defined in:
  203. * 9- Profiles and levels
  204. *
  205. * It is computed using:
  206. * Table G.1 — FLC table for profile_and_level_indication
  207. */
  208. typedef enum {
  209. GST_MPEG4_LEVEL0,
  210. GST_MPEG4_LEVEL1,
  211. GST_MPEG4_LEVEL2,
  212. GST_MPEG4_LEVEL3,
  213. GST_MPEG4_LEVEL3b,
  214. GST_MPEG4_LEVEL4,
  215. GST_MPEG4_LEVEL5,
  216. GST_MPEG4_LEVEL_RESERVED
  217. } GstMpeg4Level;
  218. /**
  219. * GstMpeg4VisualObjectSequence:
  220. *
  221. * The visual object sequence structure as defined in:
  222. * 6.2.2 Visual Object Sequence and Visual Object
  223. */
  224. struct _GstMpeg4VisualObjectSequence {
  225. guint8 profile_and_level_indication;
  226. /* Computed according to:
  227. * Table G.1 — FLC table for profile_and_level_indication */
  228. GstMpeg4Level level;
  229. GstMpeg4Profile profile;
  230. };
  231. /**
  232. * GstMpeg4VisualObject:
  233. *
  234. * The visual object structure as defined in:
  235. * 6.2.2 Visual Object Sequence and Visual Object
  236. */
  237. struct _GstMpeg4VisualObject {
  238. guint8 is_identifier;
  239. /* If is_identifier */
  240. guint8 verid;
  241. guint8 priority;
  242. GstMpeg4VisualObjectType type;
  243. };
  244. /**
  245. * GstMpeg4VideoSignalType:
  246. *
  247. * The video signal type structure as defined in:
  248. * 6.2.2 Visual Object Sequence and Visual Object.
  249. */
  250. struct _GstMpeg4VideoSignalType {
  251. guint8 type;
  252. guint8 format;
  253. guint8 range;
  254. guint8 color_description;
  255. guint8 color_primaries;
  256. guint8 transfer_characteristics;
  257. guint8 matrix_coefficients;
  258. };
  259. /**
  260. * GstMpeg4VideoPlaneShortHdr:
  261. *
  262. * The video plane short header structure as defined in:
  263. * 6.2.5.2 Video Plane with Short Header
  264. */
  265. struct _GstMpeg4VideoPlaneShortHdr {
  266. guint8 temporal_reference;
  267. guint8 split_screen_indicator;
  268. guint8 document_camera_indicator;
  269. guint8 full_picture_freeze_release;
  270. guint8 source_format;
  271. guint8 picture_coding_type;
  272. guint8 vop_quant;
  273. guint8 pei;
  274. guint8 psupp;
  275. /* Gob layer specific fields */
  276. guint8 gob_header_empty;
  277. guint8 gob_number;
  278. guint8 gob_frame_id;
  279. guint8 quant_scale;
  280. /* Computed
  281. * If all the values are set to 0, then it is reserved
  282. * Table 6-25 -- Parameters Defined by source_format Field
  283. */
  284. guint16 vop_width;
  285. guint16 vop_height;
  286. guint16 num_macroblocks_in_gob;
  287. guint8 num_gobs_in_vop;
  288. /* The size in bits */
  289. guint size;
  290. };
  291. /**
  292. * GstMpeg4VideoObjectLayer:
  293. *
  294. * The video object layer structure as defined in:
  295. * 6.2.3 Video Object Layer
  296. */
  297. struct _GstMpeg4VideoObjectLayer {
  298. guint8 random_accessible_vol;
  299. guint8 video_object_type_indication;
  300. guint8 is_object_layer_identifier;
  301. /* if is_object_layer_identifier */
  302. guint8 verid;
  303. guint8 priority;
  304. GstMpeg4AspectRatioInfo aspect_ratio_info;
  305. guint8 par_width;
  306. guint8 par_height;
  307. guint8 control_parameters;
  308. /* if control_parameters */
  309. GstMpeg4ChromaFormat chroma_format;
  310. guint8 low_delay;
  311. guint8 vbv_parameters;
  312. /* if vbv_parameters */
  313. guint16 first_half_bitrate;
  314. guint16 latter_half_bitrate;
  315. guint16 first_half_vbv_buffer_size;
  316. guint16 latter_half_vbv_buffer_size;
  317. guint16 first_half_vbv_occupancy;
  318. guint16 latter_half_vbv_occupancy;
  319. /* Computed values */
  320. guint32 bit_rate;
  321. guint32 vbv_buffer_size;
  322. GstMpeg4VideoObjectLayerShape shape;
  323. /* if shape == GST_MPEG4_GRAYSCALE && verid =! 1 */
  324. guint8 shape_extension;
  325. guint16 vop_time_increment_resolution;
  326. guint8 vop_time_increment_bits;
  327. guint8 fixed_vop_rate;
  328. /* if fixed_vop_rate */
  329. guint16 fixed_vop_time_increment;
  330. guint16 width;
  331. guint16 height;
  332. guint8 interlaced;
  333. guint8 obmc_disable;
  334. GstMpeg4SpriteEnable sprite_enable;
  335. /* if vol->sprite_enable == SPRITE_GMG or SPRITE_STATIC*/
  336. /* if vol->sprite_enable != GST_MPEG4_SPRITE_GMG */
  337. guint16 sprite_width;
  338. guint16 sprite_height;
  339. guint16 sprite_left_coordinate;
  340. guint16 sprite_top_coordinate;
  341. guint8 no_of_sprite_warping_points;
  342. guint8 sprite_warping_accuracy;
  343. guint8 sprite_brightness_change;
  344. /* if vol->sprite_enable != GST_MPEG4_SPRITE_GMG */
  345. guint8 low_latency_sprite_enable;
  346. /* if shape != GST_MPEG4_RECTANGULAR */
  347. guint8 sadct_disable;
  348. guint8 not_8_bit;
  349. /* if no_8_bit */
  350. guint8 quant_precision;
  351. guint8 bits_per_pixel;
  352. /* if shape == GRAYSCALE */
  353. guint8 no_gray_quant_update;
  354. guint8 composition_method;
  355. guint8 linear_composition;
  356. guint8 quant_type;
  357. /* if quant_type */
  358. guint8 load_intra_quant_mat;
  359. guint8 intra_quant_mat[64];
  360. guint8 load_non_intra_quant_mat;
  361. guint8 non_intra_quant_mat[64];
  362. guint8 quarter_sample;
  363. guint8 complexity_estimation_disable;
  364. guint8 resync_marker_disable;
  365. guint8 data_partitioned;
  366. guint8 reversible_vlc;
  367. guint8 newpred_enable;
  368. guint8 reduced_resolution_vop_enable;
  369. guint8 scalability;
  370. guint8 enhancement_type;
  371. GstMpeg4VideoPlaneShortHdr short_hdr;
  372. };
  373. /**
  374. * GstMpeg4SpriteTrajectory:
  375. *
  376. * The sprite trajectory structure as defined in:
  377. * 7.8.4 Sprite reference point decoding and
  378. * 6.2.5.4 Sprite coding
  379. */
  380. struct _GstMpeg4SpriteTrajectory {
  381. guint16 vop_ref_points[63]; /* Defined as "du" in 6.2.5.4 */
  382. guint16 sprite_ref_points[63]; /* Defined as "dv" in 6.2.5.4 */
  383. };
  384. /**
  385. * GstMpeg4GroupOfVOP:
  386. *
  387. * The group of video object plane structure as defined in:
  388. * 6.2.4 Group of Video Object Plane
  389. */
  390. struct _GstMpeg4GroupOfVOP {
  391. guint8 hours;
  392. guint8 minutes;
  393. guint8 seconds;
  394. guint8 closed;
  395. guint8 broken_link;
  396. };
  397. /**
  398. * GstMpeg4VideoObjectPlane:
  399. *
  400. * The Video object plane structure as defined in:
  401. * 6.2.5 Video Object Plane and Video Plane with Short Header
  402. */
  403. struct _GstMpeg4VideoObjectPlane {
  404. GstMpeg4VideoObjectCodingType coding_type;
  405. guint8 modulo_time_base;
  406. guint16 time_increment;
  407. guint8 coded;
  408. /* if newpred_enable */
  409. guint16 id;
  410. guint8 id_for_prediction_indication;
  411. guint16 id_for_prediction;
  412. guint16 width;
  413. guint16 height;
  414. guint16 horizontal_mc_spatial_ref;
  415. guint16 vertical_mc_spatial_ref;
  416. guint8 rounding_type;
  417. /*if vol->shape != GST_MPEG4_RECTANGULAR */
  418. guint8 background_composition;
  419. guint8 change_conv_ratio_disable;
  420. guint8 constant_alpha;
  421. guint8 constant_alpha_value;
  422. guint8 reduced_resolution;
  423. guint8 intra_dc_vlc_thr;
  424. guint8 top_field_first;
  425. guint8 alternate_vertical_scan_flag;
  426. guint16 quant;
  427. guint8 fcode_forward;
  428. guint8 fcode_backward;
  429. guint8 shape_coding_type;
  430. guint8 load_backward_shape;
  431. guint8 ref_select_code;
  432. /* Computed macroblock informations */
  433. guint16 mb_height;
  434. guint16 mb_width;
  435. guint mb_num;
  436. /* The size of the header */
  437. guint size;
  438. };
  439. /**
  440. * GstMpeg4VideoPacketHdr:
  441. * @size: Size of the header in bit.
  442. *
  443. * The video packet header structure as defined in:
  444. * 6.2.5.2 Video Plane with Short Header
  445. */
  446. struct _GstMpeg4VideoPacketHdr {
  447. guint8 header_extension_code;
  448. guint16 macroblock_number;
  449. guint16 quant_scale;
  450. guint size;
  451. };
  452. /**
  453. * GstMpeg4Packet:
  454. * @type: the type of the packet that start at @offset
  455. * @data: the data containing packet starting at @offset
  456. * @offset: offset of the start of the packet (without the 3 bytes startcode), but
  457. * including the #GstMpeg4StartCode byte.
  458. * @size: The size in bytes of the packet or %G_MAXUINT if the end wasn't found.
  459. * @marker_size: The size in bit of the resync marker.
  460. *
  461. * A structure that contains the type of a packet, its offset and its size
  462. */
  463. struct _GstMpeg4Packet
  464. {
  465. const guint8 *data;
  466. guint offset;
  467. gsize size;
  468. guint marker_size;
  469. GstMpeg4StartCode type;
  470. };
  471. GstMpeg4ParseResult gst_h263_parse (GstMpeg4Packet * packet,
  472. const guint8 * data, guint offset,
  473. gsize size);
  474. GstMpeg4ParseResult gst_mpeg4_parse (GstMpeg4Packet * packet,
  475. gboolean skip_user_data,
  476. GstMpeg4VideoObjectPlane *vop,
  477. const guint8 * data, guint offset,
  478. gsize size);
  479. GstMpeg4ParseResult
  480. gst_mpeg4_parse_video_object_plane (GstMpeg4VideoObjectPlane *vop,
  481. GstMpeg4SpriteTrajectory *sprite_trajectory,
  482. GstMpeg4VideoObjectLayer *vol,
  483. const guint8 * data,
  484. gsize size);
  485. GstMpeg4ParseResult
  486. gst_mpeg4_parse_group_of_vop (GstMpeg4GroupOfVOP *gov,
  487. const guint8 * data, gsize size);
  488. GstMpeg4ParseResult
  489. gst_mpeg4_parse_video_object_layer (GstMpeg4VideoObjectLayer *vol,
  490. GstMpeg4VisualObject *vo,
  491. const guint8 * data, gsize size);
  492. GstMpeg4ParseResult
  493. gst_mpeg4_parse_visual_object (GstMpeg4VisualObject *vo,
  494. GstMpeg4VideoSignalType *signal_type,
  495. const guint8 * data, gsize size);
  496. GstMpeg4ParseResult
  497. gst_mpeg4_parse_visual_object_sequence (GstMpeg4VisualObjectSequence *vos,
  498. const guint8 * data, gsize size);
  499. GstMpeg4ParseResult
  500. gst_mpeg4_parse_video_plane_short_header (GstMpeg4VideoPlaneShortHdr * shorthdr,
  501. const guint8 * data, gsize size);
  502. GstMpeg4ParseResult
  503. gst_mpeg4_parse_video_packet_header (GstMpeg4VideoPacketHdr * videopackethdr,
  504. GstMpeg4VideoObjectLayer * vol,
  505. GstMpeg4VideoObjectPlane * vop,
  506. GstMpeg4SpriteTrajectory * sprite_trajectory,
  507. const guint8 * data, gsize size);
  508. G_END_DECLS
  509. #endif /* __GST_MPEG4UTIL_H__ */