mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-09 16:02:59 +00:00
Added pad_query with percent format on filesrc and some constants
Original commit message from CVS: Added pad_query with percent format on filesrc and some constants
This commit is contained in:
parent
74d9fe06f9
commit
155369d80c
3 changed files with 26 additions and 6 deletions
|
@ -745,10 +745,18 @@ gst_filesrc_srcpad_query (GstPad *pad, GstPadQueryType type,
|
||||||
*value = src->filelen;
|
*value = src->filelen;
|
||||||
break;
|
break;
|
||||||
case GST_PAD_QUERY_POSITION:
|
case GST_PAD_QUERY_POSITION:
|
||||||
if (*format != GST_FORMAT_BYTES) {
|
switch (*format) {
|
||||||
|
case GST_FORMAT_BYTES:
|
||||||
|
*value = src->curoffset;
|
||||||
|
break;
|
||||||
|
case GST_FORMAT_PERCENT:
|
||||||
|
if (src->filelen == 0)
|
||||||
|
return FALSE;
|
||||||
|
*value = src->curoffset * GST_FORMAT_PERCENT_MAX / src->filelen;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
*value = src->curoffset;
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
|
@ -40,6 +40,10 @@ typedef enum {
|
||||||
GST_FORMAT_UNITS = 6
|
GST_FORMAT_UNITS = 6
|
||||||
} GstFormat;
|
} GstFormat;
|
||||||
|
|
||||||
|
/* a percentage is always relative to 1000000 */
|
||||||
|
#define GST_FORMAT_PERCENT_MAX 1000000LL
|
||||||
|
#define GST_FORMAT_PERCENT_SCALE 10000LL
|
||||||
|
|
||||||
typedef struct _GstFormatDefinition GstFormatDefinition;
|
typedef struct _GstFormatDefinition GstFormatDefinition;
|
||||||
|
|
||||||
struct _GstFormatDefinition
|
struct _GstFormatDefinition
|
||||||
|
|
|
@ -745,10 +745,18 @@ gst_filesrc_srcpad_query (GstPad *pad, GstPadQueryType type,
|
||||||
*value = src->filelen;
|
*value = src->filelen;
|
||||||
break;
|
break;
|
||||||
case GST_PAD_QUERY_POSITION:
|
case GST_PAD_QUERY_POSITION:
|
||||||
if (*format != GST_FORMAT_BYTES) {
|
switch (*format) {
|
||||||
|
case GST_FORMAT_BYTES:
|
||||||
|
*value = src->curoffset;
|
||||||
|
break;
|
||||||
|
case GST_FORMAT_PERCENT:
|
||||||
|
if (src->filelen == 0)
|
||||||
|
return FALSE;
|
||||||
|
*value = src->curoffset * GST_FORMAT_PERCENT_MAX / src->filelen;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
*value = src->curoffset;
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
Loading…
Reference in a new issue