mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-04 05:22:30 +00:00
Merge branch 'master' into 0.11
This commit is contained in:
commit
352edd1dd9
28 changed files with 190 additions and 160 deletions
|
@ -3087,14 +3087,12 @@ gst_ogg_demux_handle_page (GstOggDemux * ogg, ogg_page * page)
|
|||
pad = gst_ogg_demux_find_pad (ogg, serialno);
|
||||
} else {
|
||||
GstClockTime chain_time;
|
||||
GstOggChain *current_chain;
|
||||
gint64 current_time;
|
||||
|
||||
/* this can only happen in push mode */
|
||||
if (ogg->pullmode)
|
||||
goto unknown_chain;
|
||||
|
||||
current_chain = ogg->current_chain;
|
||||
current_time = ogg->segment.last_stop;
|
||||
|
||||
/* time of new chain is current time */
|
||||
|
|
|
@ -318,10 +318,9 @@ gst_ogg_mux_sink_event (GstPad * pad, GstEvent * event)
|
|||
{
|
||||
GstOggMux *ogg_mux = GST_OGG_MUX (gst_pad_get_parent (pad));
|
||||
GstOggPadData *ogg_pad = (GstOggPadData *) gst_pad_get_element_private (pad);
|
||||
gboolean ret;
|
||||
gboolean ret = FALSE;
|
||||
|
||||
GST_DEBUG ("Got %s event on pad %s:%s", GST_EVENT_TYPE_NAME (event),
|
||||
GST_DEBUG_PAD_NAME (pad));
|
||||
GST_DEBUG_OBJECT (pad, "Got %s event", GST_EVENT_TYPE_NAME (event));
|
||||
|
||||
switch (GST_EVENT_TYPE (event)) {
|
||||
case GST_EVENT_NEWSEGMENT:{
|
||||
|
@ -337,8 +336,10 @@ gst_ogg_mux_sink_event (GstPad * pad, GstEvent * event)
|
|||
/* We don't support non time NEWSEGMENT events */
|
||||
if (format != GST_FORMAT_TIME) {
|
||||
gst_event_unref (event);
|
||||
return FALSE;
|
||||
event = NULL;
|
||||
break;
|
||||
}
|
||||
|
||||
gst_segment_set_newsegment_full (&ogg_pad->segment, update, rate,
|
||||
applied_rate, format, start, stop, position);
|
||||
|
||||
|
@ -349,12 +350,11 @@ gst_ogg_mux_sink_event (GstPad * pad, GstEvent * event)
|
|||
break;
|
||||
}
|
||||
default:
|
||||
ret = TRUE;
|
||||
break;
|
||||
}
|
||||
|
||||
/* now GstCollectPads can take care of the rest, e.g. EOS */
|
||||
if (ret)
|
||||
if (event != NULL)
|
||||
ret = ogg_pad->collect_event (pad, event);
|
||||
|
||||
gst_object_unref (ogg_mux);
|
||||
|
@ -883,7 +883,6 @@ gst_ogg_mux_queue_pads (GstOggMux * ogg_mux)
|
|||
GST_DEBUG_OBJECT (data->pad, "EOS on pad");
|
||||
if (!pad->eos) {
|
||||
ogg_page page;
|
||||
GstFlowReturn ret;
|
||||
|
||||
/* it's no longer active */
|
||||
ogg_mux->active_pads--;
|
||||
|
@ -893,8 +892,7 @@ gst_ogg_mux_queue_pads (GstOggMux * ogg_mux)
|
|||
|
||||
while (ogg_stream_flush (&pad->map.stream, &page)) {
|
||||
/* Place page into the per-pad queue */
|
||||
ret = gst_ogg_mux_pad_queue_page (ogg_mux, pad, &page,
|
||||
pad->first_delta);
|
||||
gst_ogg_mux_pad_queue_page (ogg_mux, pad, &page, pad->first_delta);
|
||||
/* increment the page number counter */
|
||||
pad->pageno++;
|
||||
/* mark other pages as delta */
|
||||
|
|
|
@ -494,22 +494,16 @@ setup_dirac_mapper (GstOggStream * pad, ogg_packet * packet)
|
|||
static gboolean
|
||||
is_keyframe_dirac (GstOggStream * pad, gint64 granulepos)
|
||||
{
|
||||
gint64 pt;
|
||||
int dist_h;
|
||||
int dist_l;
|
||||
int dist;
|
||||
int delay;
|
||||
gint64 dt;
|
||||
|
||||
if (granulepos == -1)
|
||||
return -1;
|
||||
|
||||
pt = ((granulepos >> 22) + (granulepos & OGG_DIRAC_GRANULE_LOW_MASK)) >> 9;
|
||||
dist_h = (granulepos >> 22) & 0xff;
|
||||
dist_l = granulepos & 0xff;
|
||||
dist = (dist_h << 8) | dist_l;
|
||||
delay = (granulepos >> 9) & 0x1fff;
|
||||
dt = pt - delay;
|
||||
|
||||
return (dist == 0);
|
||||
}
|
||||
|
@ -518,16 +512,10 @@ static gint64
|
|||
granulepos_to_granule_dirac (GstOggStream * pad, gint64 gp)
|
||||
{
|
||||
gint64 pt;
|
||||
int dist_h;
|
||||
int dist_l;
|
||||
int dist;
|
||||
int delay;
|
||||
gint64 dt;
|
||||
|
||||
pt = ((gp >> 22) + (gp & OGG_DIRAC_GRANULE_LOW_MASK)) >> 9;
|
||||
dist_h = (gp >> 22) & 0xff;
|
||||
dist_l = gp & 0xff;
|
||||
dist = (dist_h << 8) | dist_l;
|
||||
delay = (gp >> 9) & 0x1fff;
|
||||
dt = pt - delay;
|
||||
|
||||
|
|
|
@ -449,21 +449,19 @@ serialize_encoding_profile (GKeyFile * out, GstEncodingProfile * prof)
|
|||
const GList *tmp;
|
||||
guint i;
|
||||
const gchar *profname, *profdesc, *profpreset, *proftype;
|
||||
const GstCaps *profformat, *profrestriction;
|
||||
const GstCaps *profformat;
|
||||
|
||||
profname = gst_encoding_profile_get_name (prof);
|
||||
profdesc = gst_encoding_profile_get_description (prof);
|
||||
profformat = gst_encoding_profile_get_format (prof);
|
||||
profpreset = gst_encoding_profile_get_preset (prof);
|
||||
proftype = gst_encoding_profile_get_type_nick (prof);
|
||||
profrestriction = gst_encoding_profile_get_restriction (prof);
|
||||
|
||||
profgroupname = g_strdup_printf ("profile-%s", profname);
|
||||
|
||||
g_key_file_set_string (out, profgroupname, "name", profname);
|
||||
|
||||
g_key_file_set_value (out, profgroupname, "type",
|
||||
gst_encoding_profile_get_type_nick (prof));
|
||||
g_key_file_set_value (out, profgroupname, "type", proftype);
|
||||
|
||||
if (profdesc) {
|
||||
gchar *locale;
|
||||
|
@ -1002,7 +1000,6 @@ gst_encoding_target_save (GstEncodingTarget * target, GError ** error)
|
|||
{
|
||||
gchar *filename;
|
||||
gchar *lfilename;
|
||||
gboolean res;
|
||||
|
||||
g_return_val_if_fail (GST_IS_ENCODING_TARGET (target), FALSE);
|
||||
g_return_val_if_fail (target->category != NULL, FALSE);
|
||||
|
@ -1013,7 +1010,7 @@ gst_encoding_target_save (GstEncodingTarget * target, GError ** error)
|
|||
GST_ENCODING_TARGET_DIRECTORY, target->category, lfilename, NULL);
|
||||
g_free (lfilename);
|
||||
|
||||
res = gst_encoding_target_save_to_file (target, filename, error);
|
||||
gst_encoding_target_save_to_file (target, filename, error);
|
||||
g_free (filename);
|
||||
|
||||
return TRUE;
|
||||
|
|
|
@ -269,6 +269,20 @@ parse_mode (GstRTSPTransport * transport, const gchar * str)
|
|||
transport->mode_record = (strstr (str, "record") != NULL);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
check_range (const gchar * str, gchar ** tmp, gint * range)
|
||||
{
|
||||
glong range_val;
|
||||
|
||||
range_val = strtol (str, tmp, 10);
|
||||
if (range_val >= G_MININT && range_val <= G_MAXINT) {
|
||||
*range = range_val;
|
||||
return TRUE;
|
||||
} else {
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
static gboolean
|
||||
parse_range (const gchar * str, GstRTSPRange * range)
|
||||
{
|
||||
|
@ -286,16 +300,14 @@ parse_range (const gchar * str, GstRTSPRange * range)
|
|||
if (g_ascii_isspace (minus[1]) || minus[1] == '+' || minus[1] == '-')
|
||||
goto invalid_range;
|
||||
|
||||
range->min = strtol (str, &tmp, 10);
|
||||
if (str == tmp || tmp != minus)
|
||||
if (!check_range (str, &tmp, &range->min) || str == tmp || tmp != minus)
|
||||
goto invalid_range;
|
||||
|
||||
range->max = strtol (minus + 1, &tmp, 10);
|
||||
if (*tmp && *tmp != ';')
|
||||
if (!check_range (minus + 1, &tmp, &range->max) || (*tmp && *tmp != ';'))
|
||||
goto invalid_range;
|
||||
} else {
|
||||
range->min = strtol (str, &tmp, 10);
|
||||
if (str == tmp || (*tmp && *tmp != ';'))
|
||||
if (!check_range (str, &tmp, &range->min) || str == tmp ||
|
||||
(*tmp && *tmp != ';'))
|
||||
goto invalid_range;
|
||||
|
||||
range->max = -1;
|
||||
|
|
|
@ -301,6 +301,7 @@ EXIF_DESERIALIZATION_FUNC (add_to_pending_tags);
|
|||
#define EXIF_TAG_DATE_TIME_DIGITIZED 0x9004
|
||||
#define EXIF_TAG_SHUTTER_SPEED_VALUE 0x9201
|
||||
#define EXIF_TAG_APERTURE_VALUE 0x9202
|
||||
#define EXIF_TAG_EXPOSURE_BIAS 0x9204
|
||||
#define EXIF_TAG_METERING_MODE 0x9207
|
||||
#define EXIF_TAG_FLASH 0x9209
|
||||
#define EXIF_TAG_FOCAL_LENGTH 0x920A
|
||||
|
@ -388,6 +389,8 @@ static const GstExifTagMatch tag_map_exif[] = {
|
|||
{GST_TAG_CAPTURING_FOCAL_RATIO, EXIF_TAG_APERTURE_VALUE, EXIF_TYPE_RATIONAL,
|
||||
0,
|
||||
serialize_aperture_value, deserialize_aperture_value},
|
||||
{GST_TAG_CAPTURING_EXPOSURE_COMPENSATION, EXIF_TAG_EXPOSURE_BIAS,
|
||||
EXIF_TYPE_SRATIONAL, 0, NULL, NULL},
|
||||
{GST_TAG_CAPTURING_METERING_MODE, EXIF_TAG_METERING_MODE, EXIF_TYPE_SHORT, 0,
|
||||
serialize_metering_mode, deserialize_metering_mode},
|
||||
{GST_TAG_CAPTURING_FLASH_FIRED, EXIF_TAG_FLASH, EXIF_TYPE_SHORT, 0,
|
||||
|
@ -920,6 +923,41 @@ write_exif_rational_tag_from_taglist (GstExifWriter * writer,
|
|||
}
|
||||
}
|
||||
|
||||
static void
|
||||
write_exif_signed_rational_tag_from_taglist (GstExifWriter * writer,
|
||||
const GstTagList * taglist, const GstExifTagMatch * exiftag)
|
||||
{
|
||||
const GValue *value;
|
||||
gdouble num = 0;
|
||||
gint tag_size = gst_tag_list_get_tag_size (taglist, exiftag->gst_tag);
|
||||
|
||||
if (tag_size != 1) {
|
||||
GST_WARNING ("Only the first item in the taglist will be serialized");
|
||||
return;
|
||||
}
|
||||
|
||||
value = gst_tag_list_get_value_index (taglist, exiftag->gst_tag, 0);
|
||||
|
||||
/* do some conversion if needed */
|
||||
switch (G_VALUE_TYPE (value)) {
|
||||
case G_TYPE_DOUBLE:
|
||||
num = g_value_get_double (value);
|
||||
gst_exif_writer_write_signed_rational_tag_from_double (writer,
|
||||
exiftag->exif_tag, num);
|
||||
break;
|
||||
default:
|
||||
if (G_VALUE_TYPE (value) == GST_TYPE_FRACTION) {
|
||||
gst_exif_writer_write_signed_rational_tag (writer, exiftag->exif_tag,
|
||||
gst_value_get_fraction_numerator (value),
|
||||
gst_value_get_fraction_denominator (value));
|
||||
} else {
|
||||
GST_WARNING ("Conversion from %s to signed rational not supported",
|
||||
G_VALUE_TYPE_NAME (value));
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
write_exif_integer_tag_from_taglist (GstExifWriter * writer,
|
||||
const GstTagList * taglist, const GstExifTagMatch * exiftag)
|
||||
|
@ -980,6 +1018,9 @@ write_exif_tag_from_taglist (GstExifWriter * writer, const GstTagList * taglist,
|
|||
case EXIF_TYPE_RATIONAL:
|
||||
write_exif_rational_tag_from_taglist (writer, taglist, exiftag);
|
||||
break;
|
||||
case EXIF_TYPE_SRATIONAL:
|
||||
write_exif_signed_rational_tag_from_taglist (writer, taglist, exiftag);
|
||||
break;
|
||||
case EXIF_TYPE_LONG:
|
||||
case EXIF_TYPE_SHORT:
|
||||
write_exif_integer_tag_from_taglist (writer, taglist, exiftag);
|
||||
|
@ -1588,6 +1629,10 @@ parse_exif_ifd (GstExifReader * exif_reader, gint buf_offset,
|
|||
parse_exif_rational_tag (exif_reader, tag_map[map_index].gst_tag,
|
||||
tagdata.count, tagdata.offset, 1, FALSE);
|
||||
break;
|
||||
case EXIF_TYPE_SRATIONAL:
|
||||
parse_exif_rational_tag (exif_reader, tag_map[map_index].gst_tag,
|
||||
tagdata.count, tagdata.offset, 1, TRUE);
|
||||
break;
|
||||
case EXIF_TYPE_UNDEFINED:
|
||||
parse_exif_undefined_tag (exif_reader, &tag_map[map_index],
|
||||
tagdata.count, tagdata.offset, tagdata.offset_as_data);
|
||||
|
|
|
@ -109,7 +109,7 @@ static const gchar *genres[] = {
|
|||
"Native American",
|
||||
"Cabaret",
|
||||
"New Wave",
|
||||
"Psychadelic",
|
||||
"Psychedelic",
|
||||
"Rave",
|
||||
"Showtunes",
|
||||
"Trailer",
|
||||
|
@ -135,7 +135,7 @@ static const gchar *genres[] = {
|
|||
"Avantgarde",
|
||||
"Gothic Rock",
|
||||
"Progressive Rock",
|
||||
"Psychadelic Rock",
|
||||
"Psychedelic Rock",
|
||||
"Symphonic Rock",
|
||||
"Slow Rock",
|
||||
"Big Band",
|
||||
|
|
|
@ -897,6 +897,9 @@ _init_xmp_tag_map (gpointer user_data)
|
|||
_gst_xmp_schema_add_simple_mapping (schema, GST_TAG_GEO_LOCATION_LONGITUDE,
|
||||
"exif:GPSLongitude", GST_XMP_TAG_TYPE_SIMPLE, serialize_exif_longitude,
|
||||
deserialize_exif_longitude);
|
||||
_gst_xmp_schema_add_simple_mapping (schema,
|
||||
GST_TAG_CAPTURING_EXPOSURE_COMPENSATION, "exif:ExposureBiasValue",
|
||||
GST_XMP_TAG_TYPE_SIMPLE, NULL, NULL);
|
||||
|
||||
/* compound exif tags */
|
||||
array = g_ptr_array_sized_new (2);
|
||||
|
@ -1034,6 +1037,18 @@ read_one_tag (GstTagList * list, const gchar * tag, XmpTag * xmptag,
|
|||
gst_tag_list_add (list, merge_mode, tag, v, NULL);
|
||||
break;
|
||||
}
|
||||
case G_TYPE_DOUBLE:{
|
||||
gdouble value = 0;
|
||||
gint frac_n, frac_d;
|
||||
|
||||
if (sscanf (v, "%d/%d", &frac_n, &frac_d) == 2) {
|
||||
gst_util_fraction_to_double (frac_n, frac_d, &value);
|
||||
gst_tag_list_add (list, merge_mode, tag, value, NULL);
|
||||
} else {
|
||||
GST_WARNING ("Failed to parse fraction: %s", v);
|
||||
}
|
||||
break;
|
||||
}
|
||||
default:
|
||||
if (tag_type == GST_TYPE_DATE_TIME) {
|
||||
GstDateTime *datetime = NULL;
|
||||
|
@ -1463,6 +1478,8 @@ gst_value_serialize_xmp (const GValue * value)
|
|||
return g_strdup_printf ("%d", g_value_get_int (value));
|
||||
case G_TYPE_UINT:
|
||||
return g_strdup_printf ("%u", g_value_get_uint (value));
|
||||
case G_TYPE_DOUBLE:
|
||||
return double_to_fraction_string (g_value_get_double (value));
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -202,6 +202,15 @@ G_BEGIN_DECLS
|
|||
*/
|
||||
#define GST_TAG_CAPTURING_EXPOSURE_MODE "capturing-exposure-mode"
|
||||
|
||||
/**
|
||||
* GST_TAG_CAPTURING_EXPOSURE_COMPENSATION:
|
||||
*
|
||||
* Exposure compensation using when capturing an image in EV. (double)
|
||||
*
|
||||
* Since: 0.10.33
|
||||
*/
|
||||
#define GST_TAG_CAPTURING_EXPOSURE_COMPENSATION "capturing-exposure-compensation"
|
||||
|
||||
/**
|
||||
* GST_TAG_CAPTURING_SCENE_CAPTURE_TYPE:
|
||||
*
|
||||
|
|
|
@ -133,6 +133,10 @@ gst_tag_register_tags_internal (gpointer unused)
|
|||
G_TYPE_STRING, _("capturing exposure mode"),
|
||||
_("The exposure mode used when capturing an image"), NULL);
|
||||
|
||||
gst_tag_register (GST_TAG_CAPTURING_EXPOSURE_COMPENSATION, GST_TAG_FLAG_META,
|
||||
G_TYPE_DOUBLE, _("capturing exposure compensation"),
|
||||
_("The exposure compensation used when capturing an image"), NULL);
|
||||
|
||||
gst_tag_register (GST_TAG_CAPTURING_SCENE_CAPTURE_TYPE, GST_TAG_FLAG_META,
|
||||
G_TYPE_STRING, _("capturing scene capture type"),
|
||||
_("The scene capture mode used when capturing an image"), NULL);
|
||||
|
|
|
@ -1061,27 +1061,6 @@ gboolean
|
|||
gst_video_format_is_rgb (GstVideoFormat format)
|
||||
{
|
||||
switch (format) {
|
||||
case GST_VIDEO_FORMAT_I420:
|
||||
case GST_VIDEO_FORMAT_YV12:
|
||||
case GST_VIDEO_FORMAT_YUY2:
|
||||
case GST_VIDEO_FORMAT_YVYU:
|
||||
case GST_VIDEO_FORMAT_UYVY:
|
||||
case GST_VIDEO_FORMAT_AYUV:
|
||||
case GST_VIDEO_FORMAT_Y41B:
|
||||
case GST_VIDEO_FORMAT_Y42B:
|
||||
case GST_VIDEO_FORMAT_Y444:
|
||||
case GST_VIDEO_FORMAT_v210:
|
||||
case GST_VIDEO_FORMAT_v216:
|
||||
case GST_VIDEO_FORMAT_NV12:
|
||||
case GST_VIDEO_FORMAT_NV21:
|
||||
case GST_VIDEO_FORMAT_v308:
|
||||
case GST_VIDEO_FORMAT_UYVP:
|
||||
case GST_VIDEO_FORMAT_A420:
|
||||
case GST_VIDEO_FORMAT_YUV9:
|
||||
case GST_VIDEO_FORMAT_YVU9:
|
||||
case GST_VIDEO_FORMAT_IYU1:
|
||||
case GST_VIDEO_FORMAT_AYUV64:
|
||||
return FALSE;
|
||||
case GST_VIDEO_FORMAT_RGBx:
|
||||
case GST_VIDEO_FORMAT_BGRx:
|
||||
case GST_VIDEO_FORMAT_xRGB:
|
||||
|
@ -1142,24 +1121,6 @@ gst_video_format_is_yuv (GstVideoFormat format)
|
|||
case GST_VIDEO_FORMAT_IYU1:
|
||||
case GST_VIDEO_FORMAT_AYUV64:
|
||||
return TRUE;
|
||||
case GST_VIDEO_FORMAT_RGBx:
|
||||
case GST_VIDEO_FORMAT_BGRx:
|
||||
case GST_VIDEO_FORMAT_xRGB:
|
||||
case GST_VIDEO_FORMAT_xBGR:
|
||||
case GST_VIDEO_FORMAT_RGBA:
|
||||
case GST_VIDEO_FORMAT_BGRA:
|
||||
case GST_VIDEO_FORMAT_ARGB:
|
||||
case GST_VIDEO_FORMAT_ABGR:
|
||||
case GST_VIDEO_FORMAT_RGB:
|
||||
case GST_VIDEO_FORMAT_BGR:
|
||||
case GST_VIDEO_FORMAT_RGB16:
|
||||
case GST_VIDEO_FORMAT_BGR16:
|
||||
case GST_VIDEO_FORMAT_RGB15:
|
||||
case GST_VIDEO_FORMAT_BGR15:
|
||||
case GST_VIDEO_FORMAT_RGB8_PALETTED:
|
||||
case GST_VIDEO_FORMAT_ARGB64:
|
||||
case GST_VIDEO_FORMAT_r210:
|
||||
return FALSE;
|
||||
default:
|
||||
return FALSE;
|
||||
}
|
||||
|
@ -1205,26 +1166,6 @@ gboolean
|
|||
gst_video_format_has_alpha (GstVideoFormat format)
|
||||
{
|
||||
switch (format) {
|
||||
case GST_VIDEO_FORMAT_I420:
|
||||
case GST_VIDEO_FORMAT_YV12:
|
||||
case GST_VIDEO_FORMAT_YUY2:
|
||||
case GST_VIDEO_FORMAT_YVYU:
|
||||
case GST_VIDEO_FORMAT_UYVY:
|
||||
case GST_VIDEO_FORMAT_Y41B:
|
||||
case GST_VIDEO_FORMAT_Y42B:
|
||||
case GST_VIDEO_FORMAT_Y444:
|
||||
case GST_VIDEO_FORMAT_v210:
|
||||
case GST_VIDEO_FORMAT_v216:
|
||||
case GST_VIDEO_FORMAT_NV12:
|
||||
case GST_VIDEO_FORMAT_NV21:
|
||||
case GST_VIDEO_FORMAT_v308:
|
||||
case GST_VIDEO_FORMAT_Y800:
|
||||
case GST_VIDEO_FORMAT_Y16:
|
||||
case GST_VIDEO_FORMAT_UYVP:
|
||||
case GST_VIDEO_FORMAT_YUV9:
|
||||
case GST_VIDEO_FORMAT_YVU9:
|
||||
case GST_VIDEO_FORMAT_IYU1:
|
||||
return FALSE;
|
||||
case GST_VIDEO_FORMAT_AYUV:
|
||||
case GST_VIDEO_FORMAT_RGBA:
|
||||
case GST_VIDEO_FORMAT_BGRA:
|
||||
|
@ -1235,18 +1176,6 @@ gst_video_format_has_alpha (GstVideoFormat format)
|
|||
case GST_VIDEO_FORMAT_ARGB64:
|
||||
case GST_VIDEO_FORMAT_AYUV64:
|
||||
return TRUE;
|
||||
case GST_VIDEO_FORMAT_RGBx:
|
||||
case GST_VIDEO_FORMAT_BGRx:
|
||||
case GST_VIDEO_FORMAT_xRGB:
|
||||
case GST_VIDEO_FORMAT_xBGR:
|
||||
case GST_VIDEO_FORMAT_RGB:
|
||||
case GST_VIDEO_FORMAT_BGR:
|
||||
case GST_VIDEO_FORMAT_RGB16:
|
||||
case GST_VIDEO_FORMAT_BGR16:
|
||||
case GST_VIDEO_FORMAT_RGB15:
|
||||
case GST_VIDEO_FORMAT_BGR15:
|
||||
case GST_VIDEO_FORMAT_r210:
|
||||
return FALSE;
|
||||
default:
|
||||
return FALSE;
|
||||
}
|
||||
|
|
|
@ -70,7 +70,7 @@ G_BEGIN_DECLS
|
|||
* @GST_VIDEO_FORMAT_YVU9: planar 4:1:0 YUV (like YUV9 but UV planes swapped) (Since: 0.10.32)
|
||||
* @GST_VIDEO_FORMAT_IYU1: packed 4:1:1 YUV (Cb-Y0-Y1-Cr-Y2-Y3 ...) (Since: 0.10.32)
|
||||
* @GST_VIDEO_FORMAT_ARGB64: rgb with alpha channel first, 16 bits per channel (Since: 0.10.33)
|
||||
* @GST_VIDEO_FORMAT_AY64: packed 4:4:4 YUV with alpha channel, 16 bits per channel (A0-Y0-U0-V0 ...) (Since: 0.10.33)
|
||||
* @GST_VIDEO_FORMAT_AYUV64: packed 4:4:4 YUV with alpha channel, 16 bits per channel (A0-Y0-U0-V0 ...) (Since: 0.10.33)
|
||||
* @GST_VIDEO_FORMAT_r210: packed 4:4:4 RGB, 10 bits per channel (Since: 0.10.33)
|
||||
*
|
||||
* Enum value describing the most common video formats.
|
||||
|
|
|
@ -1559,6 +1559,7 @@ stream_group_free (GstEncodeBin * ebin, StreamGroup * sgroup)
|
|||
/* Capsfilter - outqueue */
|
||||
gst_element_set_state (sgroup->outfilter, GST_STATE_NULL);
|
||||
gst_element_unlink (sgroup->outfilter, sgroup->outqueue);
|
||||
gst_element_set_state (sgroup->outqueue, GST_STATE_NULL);
|
||||
gst_bin_remove (GST_BIN (ebin), sgroup->outqueue);
|
||||
|
||||
/* streamcombiner - parser - capsfilter */
|
||||
|
@ -1566,6 +1567,7 @@ stream_group_free (GstEncodeBin * ebin, StreamGroup * sgroup)
|
|||
gst_element_set_state (sgroup->parser, GST_STATE_NULL);
|
||||
gst_element_unlink (sgroup->parser, sgroup->outfilter);
|
||||
gst_element_unlink (sgroup->combiner, sgroup->parser);
|
||||
gst_bin_remove ((GstBin *) ebin, sgroup->parser);
|
||||
}
|
||||
|
||||
/* Sink Ghostpad */
|
||||
|
@ -1606,6 +1608,8 @@ stream_group_free (GstEncodeBin * ebin, StreamGroup * sgroup)
|
|||
gst_iterator_resync (it);
|
||||
}
|
||||
gst_iterator_free (it);
|
||||
gst_element_set_state (sgroup->combiner, GST_STATE_NULL);
|
||||
gst_bin_remove ((GstBin *) ebin, sgroup->combiner);
|
||||
}
|
||||
|
||||
if (sgroup->splitter) {
|
||||
|
@ -1616,15 +1620,23 @@ stream_group_free (GstEncodeBin * ebin, StreamGroup * sgroup)
|
|||
gst_iterator_resync (it);
|
||||
}
|
||||
gst_iterator_free (it);
|
||||
|
||||
gst_element_set_state (sgroup->splitter, GST_STATE_NULL);
|
||||
gst_bin_remove ((GstBin *) ebin, sgroup->splitter);
|
||||
}
|
||||
|
||||
if (sgroup->inqueue)
|
||||
gst_bin_remove ((GstBin *) ebin, sgroup->inqueue);
|
||||
|
||||
if (sgroup->encoder)
|
||||
gst_bin_remove ((GstBin *) ebin, sgroup->encoder);
|
||||
|
||||
if (sgroup->smartencoder)
|
||||
gst_bin_remove ((GstBin *) ebin, sgroup->smartencoder);
|
||||
|
||||
if (sgroup->outfilter)
|
||||
gst_bin_remove ((GstBin *) ebin, sgroup->outfilter);
|
||||
|
||||
g_slice_free (StreamGroup, sgroup);
|
||||
}
|
||||
|
||||
|
@ -1653,6 +1665,7 @@ gst_encode_bin_tear_down_profile (GstEncodeBin * ebin)
|
|||
|
||||
/* Remove muxer if present */
|
||||
if (ebin->muxer) {
|
||||
gst_element_set_state (ebin->muxer, GST_STATE_NULL);
|
||||
gst_bin_remove (GST_BIN (ebin), ebin->muxer);
|
||||
ebin->muxer = NULL;
|
||||
}
|
||||
|
|
|
@ -2153,7 +2153,7 @@ static int glue (get_alpha_info_, RGB_NAME) (const AVPicture * src,
|
|||
{
|
||||
const unsigned char *p;
|
||||
int src_wrap, ret, x, y;
|
||||
unsigned int r, g, b, a;
|
||||
unsigned int G_GNUC_UNUSED r, G_GNUC_UNUSED g, G_GNUC_UNUSED b, a;
|
||||
|
||||
p = src->data[0];
|
||||
src_wrap = src->linesize[0] - BPP * width;
|
||||
|
|
|
@ -425,7 +425,6 @@ group_commit (GstPlayBaseBin * play_base_bin, gboolean fatal, gboolean subtitle)
|
|||
{
|
||||
GstPlayBaseGroup *group;
|
||||
gboolean had_active_group;
|
||||
gboolean res;
|
||||
|
||||
GROUP_LOCK (play_base_bin);
|
||||
group = play_base_bin->building_group;
|
||||
|
@ -486,8 +485,7 @@ group_commit (GstPlayBaseBin * play_base_bin, gboolean fatal, gboolean subtitle)
|
|||
|
||||
setup_substreams (play_base_bin);
|
||||
GST_DEBUG_OBJECT (play_base_bin, "Emitting signal");
|
||||
res =
|
||||
GST_PLAY_BASE_BIN_GET_CLASS (play_base_bin)->setup_output_pads
|
||||
GST_PLAY_BASE_BIN_GET_CLASS (play_base_bin)->setup_output_pads
|
||||
(play_base_bin, group);
|
||||
GST_DEBUG_OBJECT (play_base_bin, "done");
|
||||
|
||||
|
@ -1167,7 +1165,6 @@ probe_triggered (GstPad * pad, GstEvent * event, gpointer user_data)
|
|||
GstPlayBaseGroup *group;
|
||||
GstPlayBaseBin *play_base_bin;
|
||||
GstStreamInfo *info;
|
||||
gboolean res;
|
||||
GstEventType type;
|
||||
|
||||
type = GST_EVENT_TYPE (event);
|
||||
|
@ -1231,8 +1228,7 @@ probe_triggered (GstPad * pad, GstEvent * event, gpointer user_data)
|
|||
setup_substreams (play_base_bin);
|
||||
GST_DEBUG ("switching to next group %p - emitting signal", group);
|
||||
/* and signal the new group */
|
||||
res =
|
||||
GST_PLAY_BASE_BIN_GET_CLASS (play_base_bin)->setup_output_pads
|
||||
GST_PLAY_BASE_BIN_GET_CLASS (play_base_bin)->setup_output_pads
|
||||
(play_base_bin, group);
|
||||
|
||||
GROUP_UNLOCK (play_base_bin);
|
||||
|
|
|
@ -84,7 +84,6 @@ tmplayer_parse_line (ParserState * state, const gchar * line, guint line_num)
|
|||
{
|
||||
GstClockTime ts = GST_CLOCK_TIME_NONE;
|
||||
const gchar *text_start = NULL;
|
||||
gboolean multiline = FALSE;
|
||||
gchar *ret = NULL;
|
||||
gchar divc = '\0';
|
||||
guint h, m, s, l = 1;
|
||||
|
@ -94,7 +93,6 @@ tmplayer_parse_line (ParserState * state, const gchar * line, guint line_num)
|
|||
GST_LOG ("multiline format %u %u %u %u", h, m, s, l);
|
||||
ts = GST_SECOND * ((((h * 60) + m) * 60) + s);
|
||||
text_start = strchr (line, '=');
|
||||
multiline = TRUE;
|
||||
} else if (sscanf (line, "%u:%02u:%02u%c", &h, &m, &s, &divc) == 4 &&
|
||||
(divc == '=' || divc == ':')) {
|
||||
GST_LOG ("single line format %u %u %u %u %c", h, m, s, l, divc);
|
||||
|
|
|
@ -812,7 +812,7 @@ gst_multi_fd_sink_add_full (GstMultiFdSink * sink, int fd,
|
|||
GstTCPClient *client;
|
||||
GList *clink;
|
||||
GTimeVal now;
|
||||
gint flags, res;
|
||||
gint flags;
|
||||
struct stat statbuf;
|
||||
|
||||
GST_DEBUG_OBJECT (sink, "[fd %5d] adding client, sync_method %d, "
|
||||
|
@ -867,7 +867,11 @@ gst_multi_fd_sink_add_full (GstMultiFdSink * sink, int fd,
|
|||
sink->clients_cookie++;
|
||||
|
||||
/* set the socket to non blocking */
|
||||
res = fcntl (fd, F_SETFL, O_NONBLOCK);
|
||||
if (fcntl (fd, F_SETFL, O_NONBLOCK) < 0) {
|
||||
GST_ERROR_OBJECT (sink, "failed to make socket %d non-blocking: %s", fd,
|
||||
g_strerror (errno));
|
||||
}
|
||||
|
||||
/* we always read from a client */
|
||||
gst_poll_add_fd (sink->fdset, &client->fd);
|
||||
|
||||
|
@ -879,8 +883,7 @@ gst_multi_fd_sink_add_full (GstMultiFdSink * sink, int fd,
|
|||
}
|
||||
}
|
||||
/* figure out the mode, can't use send() for non sockets */
|
||||
res = fstat (fd, &statbuf);
|
||||
if (S_ISSOCK (statbuf.st_mode)) {
|
||||
if (fstat (fd, &statbuf) == 0 && S_ISSOCK (statbuf.st_mode)) {
|
||||
client->is_socket = TRUE;
|
||||
setup_dscp_client (sink, client);
|
||||
}
|
||||
|
@ -1775,7 +1778,6 @@ gst_multi_fd_sink_new_client (GstMultiFdSink * sink, GstTCPClient * client)
|
|||
}
|
||||
case GST_SYNC_METHOD_BURST_KEYFRAME:
|
||||
{
|
||||
gboolean ok;
|
||||
gint min_idx, max_idx;
|
||||
gint next_syncframe, prev_syncframe;
|
||||
|
||||
|
@ -1787,7 +1789,7 @@ gst_multi_fd_sink_new_client (GstMultiFdSink * sink, GstTCPClient * client)
|
|||
* NEXT_KEYFRAME.
|
||||
*/
|
||||
/* gather burst limits */
|
||||
ok = count_burst_unit (sink, &min_idx, client->burst_min_unit,
|
||||
count_burst_unit (sink, &min_idx, client->burst_min_unit,
|
||||
client->burst_min_value, &max_idx, client->burst_max_unit,
|
||||
client->burst_max_value);
|
||||
|
||||
|
@ -1824,7 +1826,6 @@ gst_multi_fd_sink_new_client (GstMultiFdSink * sink, GstTCPClient * client)
|
|||
}
|
||||
case GST_SYNC_METHOD_BURST_WITH_KEYFRAME:
|
||||
{
|
||||
gboolean ok;
|
||||
gint min_idx, max_idx;
|
||||
gint next_syncframe;
|
||||
|
||||
|
@ -1835,7 +1836,7 @@ gst_multi_fd_sink_new_client (GstMultiFdSink * sink, GstTCPClient * client)
|
|||
* amount of data up 'till min.
|
||||
*/
|
||||
/* gather enough data to burst */
|
||||
ok = count_burst_unit (sink, &min_idx, client->burst_min_unit,
|
||||
count_burst_unit (sink, &min_idx, client->burst_min_unit,
|
||||
client->burst_min_value, &max_idx, client->burst_max_unit,
|
||||
client->burst_max_value);
|
||||
|
||||
|
|
|
@ -1018,7 +1018,7 @@ mp3_type_find_at_offset (GstTypeFind * tf, guint64 start_off,
|
|||
while (found < GST_MP3_TYPEFIND_TRY_HEADERS) {
|
||||
guint32 head;
|
||||
guint length;
|
||||
guint prev_layer = 0, prev_bitrate = 0;
|
||||
guint prev_layer = 0;
|
||||
guint prev_channels = 0, prev_samplerate = 0;
|
||||
gboolean free = FALSE;
|
||||
|
||||
|
@ -1065,7 +1065,6 @@ mp3_type_find_at_offset (GstTypeFind * tf, guint64 start_off,
|
|||
* be a freaking funky encoded mp3 though. We'll just not count
|
||||
* this header*/
|
||||
prev_layer = layer;
|
||||
prev_bitrate = bitrate;
|
||||
prev_channels = channels;
|
||||
prev_samplerate = samplerate;
|
||||
} else {
|
||||
|
|
|
@ -340,6 +340,12 @@ gst_video_rate_setcaps (GstPad * pad, GstCaps * caps)
|
|||
|
||||
GST_DEBUG_OBJECT (videorate, "intersect %" GST_PTR_FORMAT, caps);
|
||||
|
||||
/* could turn up empty, due to e.g. colorspace etc */
|
||||
if (gst_caps_get_size (caps) == 0) {
|
||||
gst_caps_unref (caps);
|
||||
goto no_transform;
|
||||
}
|
||||
|
||||
/* take first possibility */
|
||||
gst_caps_truncate (caps);
|
||||
structure = gst_caps_get_structure (caps, 0);
|
||||
|
|
|
@ -85,7 +85,6 @@ vs_image_scale_linear_RGBA (const VSImage * dest, const VSImage * src,
|
|||
int y_increment;
|
||||
int x_increment;
|
||||
int y1;
|
||||
int y2;
|
||||
int i;
|
||||
int j;
|
||||
int x;
|
||||
|
@ -106,7 +105,6 @@ vs_image_scale_linear_RGBA (const VSImage * dest, const VSImage * src,
|
|||
#define LINE(x) ((tmpbuf) + (dest_size)*((x)&1))
|
||||
|
||||
acc = 0;
|
||||
y2 = -1;
|
||||
gst_videoscale_orc_resample_bilinear_u32 (LINE (0), src->pixels,
|
||||
0, x_increment, dest->width);
|
||||
y1 = 0;
|
||||
|
@ -574,7 +572,6 @@ vs_image_scale_linear_Y (const VSImage * dest, const VSImage * src,
|
|||
int j;
|
||||
int x;
|
||||
int dest_size;
|
||||
int xacc;
|
||||
|
||||
if (dest->height == 1)
|
||||
y_increment = 0;
|
||||
|
@ -592,7 +589,6 @@ vs_image_scale_linear_Y (const VSImage * dest, const VSImage * src,
|
|||
tmp2 = tmpbuf + dest_size;
|
||||
|
||||
acc = 0;
|
||||
xacc = 0;
|
||||
y2 = -1;
|
||||
gst_videoscale_orc_resample_bilinear_u8 (tmp1, src->pixels,
|
||||
0, x_increment, dest->width);
|
||||
|
@ -607,7 +603,6 @@ vs_image_scale_linear_Y (const VSImage * dest, const VSImage * src,
|
|||
} else if (j == y2) {
|
||||
memcpy (dest->pixels + i * dest->stride, tmp2, dest_size);
|
||||
} else {
|
||||
xacc = 0;
|
||||
gst_videoscale_orc_resample_bilinear_u8 (tmp1,
|
||||
src->pixels + j * src->stride, 0, x_increment, dest->width);
|
||||
y1 = j;
|
||||
|
@ -616,7 +611,6 @@ vs_image_scale_linear_Y (const VSImage * dest, const VSImage * src,
|
|||
} else {
|
||||
if (j == y1) {
|
||||
if (j + 1 != y2) {
|
||||
xacc = 0;
|
||||
gst_videoscale_orc_resample_bilinear_u8 (tmp2,
|
||||
src->pixels + (j + 1) * src->stride, 0, x_increment, dest->width);
|
||||
y2 = j + 1;
|
||||
|
@ -629,7 +623,6 @@ vs_image_scale_linear_Y (const VSImage * dest, const VSImage * src,
|
|||
}
|
||||
} else if (j == y2) {
|
||||
if (j + 1 != y1) {
|
||||
xacc = 0;
|
||||
gst_videoscale_orc_resample_bilinear_u8 (tmp1,
|
||||
src->pixels + (j + 1) * src->stride, 0, x_increment, dest->width);
|
||||
y1 = j + 1;
|
||||
|
@ -1098,7 +1091,6 @@ vs_image_scale_linear_AYUV64 (const VSImage * dest, const VSImage * src,
|
|||
int y_increment;
|
||||
int x_increment;
|
||||
int y1;
|
||||
int y2;
|
||||
int i;
|
||||
int j;
|
||||
int x;
|
||||
|
@ -1121,7 +1113,6 @@ vs_image_scale_linear_AYUV64 (const VSImage * dest, const VSImage * src,
|
|||
#define LINE(x) ((guint16 *)((tmpbuf) + (dest_size)*((x)&1)))
|
||||
|
||||
acc = 0;
|
||||
y2 = -1;
|
||||
//gst_videoscale_orc_resample_bilinear_u64 (LINE (0), src->pixels,
|
||||
// 0, x_increment, dest->width);
|
||||
xacc = 0;
|
||||
|
|
|
@ -171,13 +171,7 @@ VALGRIND_TO_FIX = \
|
|||
noinst_PROGRAMS = $(check_libvisual)
|
||||
|
||||
noinst_HEADERS = \
|
||||
libs/struct_i386.h
|
||||
# libs/struct_arm.h \
|
||||
# libs/struct_hppa.h \
|
||||
# libs/struct_ppc32.h \
|
||||
# libs/struct_ppc64.h \
|
||||
# libs/struct_sparc.h \
|
||||
# libs/struct_x86_64.h
|
||||
libs/struct_*.h
|
||||
|
||||
AM_CFLAGS = -I$(top_srcdir)/gst-libs -I$(top_builddir)/gst-libs \
|
||||
$(GST_CFLAGS) $(GST_CHECK_CFLAGS) \
|
||||
|
|
|
@ -359,15 +359,15 @@ GST_START_TEST (test_encodebin_sink_pads_multiple_dynamic)
|
|||
fail_unless_equals_int (gst_element_set_state (ebin, GST_STATE_PAUSED),
|
||||
GST_STATE_CHANGE_SUCCESS);
|
||||
|
||||
/* Set back to NULL */
|
||||
fail_unless_equals_int (gst_element_set_state (ebin, GST_STATE_NULL),
|
||||
GST_STATE_CHANGE_SUCCESS);
|
||||
|
||||
gst_element_release_request_pad (GST_ELEMENT (ebin), sinkpadvorbis);
|
||||
gst_object_unref (sinkpadvorbis);
|
||||
gst_element_release_request_pad (GST_ELEMENT (ebin), sinkpadtheora);
|
||||
gst_object_unref (sinkpadtheora);
|
||||
|
||||
/* Set back to NULL */
|
||||
fail_unless_equals_int (gst_element_set_state (ebin, GST_STATE_NULL),
|
||||
GST_STATE_CHANGE_SUCCESS);
|
||||
|
||||
gst_object_unref (ebin);
|
||||
};
|
||||
|
||||
|
@ -604,13 +604,13 @@ GST_START_TEST (test_encodebin_render_audio_dynamic)
|
|||
}
|
||||
}
|
||||
|
||||
gst_element_release_request_pad (GST_ELEMENT (ebin), sinkpad);
|
||||
gst_object_unref (sinkpad);
|
||||
|
||||
/* Set back to NULL */
|
||||
fail_unless_equals_int (gst_element_set_state (pipeline, GST_STATE_NULL),
|
||||
GST_STATE_CHANGE_SUCCESS);
|
||||
|
||||
gst_element_release_request_pad (GST_ELEMENT (ebin), sinkpad);
|
||||
gst_object_unref (sinkpad);
|
||||
|
||||
gst_object_unref (bus);
|
||||
|
||||
gst_object_unref (pipeline);
|
||||
|
@ -745,15 +745,15 @@ GST_START_TEST (test_encodebin_render_audio_video_dynamic)
|
|||
}
|
||||
}
|
||||
|
||||
/* Set back to NULL */
|
||||
fail_unless_equals_int (gst_element_set_state (pipeline, GST_STATE_NULL),
|
||||
GST_STATE_CHANGE_SUCCESS);
|
||||
|
||||
gst_element_release_request_pad (GST_ELEMENT (ebin), sinkpad1);
|
||||
gst_object_unref (sinkpad1);
|
||||
gst_element_release_request_pad (GST_ELEMENT (ebin), sinkpad2);
|
||||
gst_object_unref (sinkpad2);
|
||||
|
||||
/* Set back to NULL */
|
||||
fail_unless_equals_int (gst_element_set_state (pipeline, GST_STATE_NULL),
|
||||
GST_STATE_CHANGE_SUCCESS);
|
||||
|
||||
gst_object_unref (bus);
|
||||
|
||||
gst_object_unref (pipeline);
|
||||
|
@ -867,6 +867,8 @@ GST_START_TEST (test_encodebin_reuse)
|
|||
_test_encodebin_reuse (prof2, prof3);
|
||||
|
||||
gst_encoding_profile_unref (prof1);
|
||||
gst_encoding_profile_unref (prof2);
|
||||
gst_encoding_profile_unref (prof3);
|
||||
};
|
||||
|
||||
GST_END_TEST;
|
||||
|
|
|
@ -178,7 +178,7 @@ GST_END_TEST;
|
|||
"%f does not match expected %f", ___d, d); \
|
||||
}
|
||||
|
||||
GST_START_TEST (test_muscibrainz_tag_registration)
|
||||
GST_START_TEST (test_musicbrainz_tag_registration)
|
||||
{
|
||||
GstTagList *list;
|
||||
|
||||
|
@ -957,6 +957,8 @@ GST_START_TEST (test_xmp_tags_serialization_deserialization)
|
|||
GDate *date;
|
||||
GstDateTime *datetime;
|
||||
|
||||
gst_tag_register_musicbrainz_tags ();
|
||||
|
||||
g_value_init (&value, G_TYPE_STRING);
|
||||
g_value_set_static_string (&value, "my string");
|
||||
do_simple_xmp_tag_serialization_deserialization (GST_TAG_ARTIST, &value);
|
||||
|
@ -1067,6 +1069,16 @@ GST_START_TEST (test_xmp_tags_serialization_deserialization)
|
|||
g_value_set_double (&value, 359.99);
|
||||
do_simple_xmp_tag_serialization_deserialization
|
||||
(GST_TAG_GEO_LOCATION_CAPTURE_DIRECTION, &value);
|
||||
|
||||
g_value_set_double (&value, 0.0);
|
||||
do_simple_xmp_tag_serialization_deserialization
|
||||
(GST_TAG_CAPTURING_EXPOSURE_COMPENSATION, &value);
|
||||
g_value_set_double (&value, 1.0);
|
||||
do_simple_xmp_tag_serialization_deserialization
|
||||
(GST_TAG_CAPTURING_EXPOSURE_COMPENSATION, &value);
|
||||
g_value_set_double (&value, -2.5);
|
||||
do_simple_xmp_tag_serialization_deserialization
|
||||
(GST_TAG_CAPTURING_EXPOSURE_COMPENSATION, &value);
|
||||
g_value_unset (&value);
|
||||
|
||||
g_value_init (&value, GST_TYPE_DATE);
|
||||
|
@ -1538,6 +1550,16 @@ GST_START_TEST (test_exif_tags_serialization_deserialization)
|
|||
g_value_set_double (&value, 600.0);
|
||||
do_simple_exif_tag_serialization_deserialization
|
||||
(GST_TAG_IMAGE_VERTICAL_PPI, &value);
|
||||
|
||||
g_value_set_double (&value, 0.0);
|
||||
do_simple_exif_tag_serialization_deserialization
|
||||
(GST_TAG_CAPTURING_EXPOSURE_COMPENSATION, &value);
|
||||
g_value_set_double (&value, 1.0);
|
||||
do_simple_exif_tag_serialization_deserialization
|
||||
(GST_TAG_CAPTURING_EXPOSURE_COMPENSATION, &value);
|
||||
g_value_set_double (&value, -2.5);
|
||||
do_simple_exif_tag_serialization_deserialization
|
||||
(GST_TAG_CAPTURING_EXPOSURE_COMPENSATION, &value);
|
||||
g_value_unset (&value);
|
||||
|
||||
g_value_init (&value, G_TYPE_INT);
|
||||
|
@ -1615,7 +1637,7 @@ tag_suite (void)
|
|||
TCase *tc_chain = tcase_create ("general");
|
||||
|
||||
suite_add_tcase (s, tc_chain);
|
||||
tcase_add_test (tc_chain, test_muscibrainz_tag_registration);
|
||||
tcase_add_test (tc_chain, test_musicbrainz_tag_registration);
|
||||
tcase_add_test (tc_chain, test_parse_extended_comment);
|
||||
tcase_add_test (tc_chain, test_vorbis_tags);
|
||||
tcase_add_test (tc_chain, test_id3_tags);
|
||||
|
|
|
@ -27,7 +27,7 @@ static gboolean
|
|||
remove_range_foreach (GQuark field_id, const GValue * value, GstStructure * st)
|
||||
{
|
||||
GType ftype = G_VALUE_TYPE (value);
|
||||
const gchar *fname;
|
||||
/* const gchar *fname; */
|
||||
|
||||
if (ftype == GST_TYPE_INT_RANGE || ftype == GST_TYPE_DOUBLE_RANGE ||
|
||||
ftype == GST_TYPE_FRACTION_RANGE) {
|
||||
|
@ -35,8 +35,7 @@ remove_range_foreach (GQuark field_id, const GValue * value, GstStructure * st)
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
fname = g_quark_to_string (field_id);
|
||||
|
||||
/* fname = g_quark_to_string (field_id); */
|
||||
/* if (strstr (fname, "framerate") || strstr (fname, "pixel-aspect-ratio") || */
|
||||
/* strstr (fname, "rate")) { */
|
||||
/* gst_structure_remove_field (st, g_quark_to_string (field_id)); */
|
||||
|
|
|
@ -119,6 +119,7 @@ main (int argc, char *argv[])
|
|||
|
||||
gtk_main ();
|
||||
|
||||
g_source_remove (watch_id);
|
||||
gst_element_set_state (pipeline, GST_STATE_NULL);
|
||||
gst_object_unref (pipeline);
|
||||
|
||||
|
|
|
@ -156,6 +156,7 @@ main (int argc, char *argv[])
|
|||
|
||||
g_main_loop_run (loop);
|
||||
|
||||
g_source_remove (watch_id);
|
||||
gst_element_set_state (pipeline, GST_STATE_NULL);
|
||||
gst_object_unref (pipeline);
|
||||
|
||||
|
|
|
@ -2119,6 +2119,10 @@ step_cb (GtkButton * button, gpointer data)
|
|||
event = gst_event_new_step (format, amount, rate, flush, FALSE);
|
||||
|
||||
res = send_event (event);
|
||||
|
||||
if (!res) {
|
||||
g_print ("Sending step event failed\n");
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -2658,6 +2662,8 @@ read_joystick (GIOChannel * source, GIOCondition condition, gpointer user_data)
|
|||
g_print ("error reading joystick, read %u bytes of %u\n",
|
||||
(guint) bytes_read, (guint) sizeof (struct js_event));
|
||||
return TRUE;
|
||||
} else if (result != G_IO_STATUS_NORMAL) {
|
||||
g_print ("reading from joystick returned status %d", result);
|
||||
}
|
||||
|
||||
switch (js->type & ~JS_EVENT_INIT) {
|
||||
|
|
|
@ -2106,6 +2106,10 @@ step_cb (GtkButton * button, gpointer data)
|
|||
event = gst_event_new_step (format, amount, rate, flush, FALSE);
|
||||
|
||||
res = send_event (event);
|
||||
|
||||
if (!res) {
|
||||
g_print ("Sending step event failed\n");
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
Loading…
Reference in a new issue