mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-23 16:50:47 +00:00
parent
48ad76e538
commit
5555b5fa9d
3 changed files with 15 additions and 11 deletions
|
@ -12,7 +12,8 @@ libgstvideoparsersbad_la_CFLAGS = \
|
||||||
$(GST_BASE_CFLAGS) $(GST_CFLAGS)
|
$(GST_BASE_CFLAGS) $(GST_CFLAGS)
|
||||||
libgstvideoparsersbad_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) \
|
libgstvideoparsersbad_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) \
|
||||||
$(top_builddir)/gst-libs/gst/codecparsers/libgstcodecparsers-$(GST_MAJORMINOR).la \
|
$(top_builddir)/gst-libs/gst/codecparsers/libgstcodecparsers-$(GST_MAJORMINOR).la \
|
||||||
$(GST_BASE_LIBS) $(GST_LIBS)
|
$(GST_BASE_LIBS) -lgstpbutils-$(GST_MAJORMINOR) \
|
||||||
|
$(GST_LIBS)
|
||||||
libgstvideoparsersbad_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
|
libgstvideoparsersbad_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
|
||||||
libgstvideoparsersbad_la_LIBTOOLFLAGS = --tag=disable-static
|
libgstvideoparsersbad_la_LIBTOOLFLAGS = --tag=disable-static
|
||||||
|
|
||||||
|
|
|
@ -30,6 +30,8 @@
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <gst/base/gstbytereader.h>
|
#include <gst/base/gstbytereader.h>
|
||||||
|
#include <gst/pbutils/codec-utils.h>
|
||||||
|
|
||||||
#include "gstmpeg4videoparse.h"
|
#include "gstmpeg4videoparse.h"
|
||||||
|
|
||||||
GST_DEBUG_CATEGORY (mpeg4v_parse_debug);
|
GST_DEBUG_CATEGORY (mpeg4v_parse_debug);
|
||||||
|
@ -193,8 +195,9 @@ static void
|
||||||
gst_mpeg4vparse_reset (GstMpeg4VParse * mp4vparse)
|
gst_mpeg4vparse_reset (GstMpeg4VParse * mp4vparse)
|
||||||
{
|
{
|
||||||
gst_mpeg4vparse_reset_frame (mp4vparse);
|
gst_mpeg4vparse_reset_frame (mp4vparse);
|
||||||
mp4vparse->profile = 0;
|
|
||||||
mp4vparse->update_caps = TRUE;
|
mp4vparse->update_caps = TRUE;
|
||||||
|
mp4vparse->profile = NULL;
|
||||||
|
mp4vparse->level = NULL;
|
||||||
|
|
||||||
gst_buffer_replace (&mp4vparse->config, NULL);
|
gst_buffer_replace (&mp4vparse->config, NULL);
|
||||||
memset (&mp4vparse->vol, 0, sizeof (mp4vparse->vol));
|
memset (&mp4vparse->vol, 0, sizeof (mp4vparse->vol));
|
||||||
|
@ -325,6 +328,10 @@ gst_mpeg4vparse_process_sc (GstMpeg4VParse * mp4vparse, GstMpeg4Packet * packet,
|
||||||
case GST_MPEG4_VISUAL_OBJ_SEQ_START:
|
case GST_MPEG4_VISUAL_OBJ_SEQ_START:
|
||||||
GST_LOG_OBJECT (mp4vparse, "Visual Sequence Start");
|
GST_LOG_OBJECT (mp4vparse, "Visual Sequence Start");
|
||||||
mp4vparse->vo_found = TRUE;
|
mp4vparse->vo_found = TRUE;
|
||||||
|
mp4vparse->profile = gst_codec_utils_mpeg4video_get_profile (packet->data
|
||||||
|
+ packet->offset + 1, packet->offset);
|
||||||
|
mp4vparse->level = gst_codec_utils_mpeg4video_get_level (packet->data
|
||||||
|
+ packet->offset + 1, packet->offset);
|
||||||
break;
|
break;
|
||||||
case GST_MPEG4_VISUAL_OBJ:
|
case GST_MPEG4_VISUAL_OBJ:
|
||||||
GST_LOG_OBJECT (mp4vparse, "Visual Object");
|
GST_LOG_OBJECT (mp4vparse, "Visual Object");
|
||||||
|
@ -489,14 +496,9 @@ gst_mpeg4vparse_update_src_caps (GstMpeg4VParse * mp4vparse)
|
||||||
gst_caps_set_simple (caps, "systemstream", G_TYPE_BOOLEAN, FALSE,
|
gst_caps_set_simple (caps, "systemstream", G_TYPE_BOOLEAN, FALSE,
|
||||||
"parsed", G_TYPE_BOOLEAN, TRUE, NULL);
|
"parsed", G_TYPE_BOOLEAN, TRUE, NULL);
|
||||||
|
|
||||||
if (mp4vparse->profile != 0) {
|
if (mp4vparse->profile && mp4vparse->level) {
|
||||||
gchar *profile = NULL;
|
gst_caps_set_simple (caps, "profile", G_TYPE_STRING, mp4vparse->profile,
|
||||||
|
"level", G_TYPE_STRING, mp4vparse->level, NULL);
|
||||||
/* FIXME does it make sense to expose the profile in the caps ? */
|
|
||||||
profile = g_strdup_printf ("%d", mp4vparse->profile);
|
|
||||||
gst_caps_set_simple (caps, "profile-level-id",
|
|
||||||
G_TYPE_STRING, profile, NULL);
|
|
||||||
g_free (profile);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mp4vparse->config != NULL) {
|
if (mp4vparse->config != NULL) {
|
||||||
|
|
|
@ -55,9 +55,10 @@ struct _GstMpeg4VParse {
|
||||||
gboolean update_caps;
|
gboolean update_caps;
|
||||||
|
|
||||||
GstBuffer *config;
|
GstBuffer *config;
|
||||||
guint8 profile;
|
|
||||||
GstMpeg4VideoObjectLayer vol;
|
GstMpeg4VideoObjectLayer vol;
|
||||||
gboolean vol_offset;
|
gboolean vol_offset;
|
||||||
|
const gchar *profile;
|
||||||
|
const gchar *level;
|
||||||
|
|
||||||
/* properties */
|
/* properties */
|
||||||
gboolean drop;
|
gboolean drop;
|
||||||
|
|
Loading…
Reference in a new issue