From: Benjamin Otte Date: Thu, 22 Apr 2004 16:39:23 +0000 (+0000) Subject: docs/gst/tmpl/: update for recent API changes X-Git-Tag: RELEASE-0_8_2~149 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=1c0dbd87b9d429c84b1c394ff8a4ca53e2eddc10;p=platform%2Fupstream%2Fgstreamer.git docs/gst/tmpl/: update for recent API changes Original commit message from CVS: * docs/gst/tmpl/gstcaps.sgml: * docs/gst/tmpl/gstfilesrc.sgml: * docs/gst/tmpl/gststructure.sgml: * docs/gst/tmpl/gstvalue.sgml: update for recent API changes * gst/gstcaps.c: (gst_caps_do_simplify): fix to stop trying with a freed structure * gst/gstpad.c: (gst_pad_link_fixate): simplify caps * gst/gstpad.c: (gst_pad_template_get_caps_by_name): remove C++ comment * gst/gstpad.h: deprecate gst_pad_template_get_caps_by_name, it doesn't work anyway * gst/gststructure.c: (gst_structure_value_get_generic_type), (gst_structure_to_string): keep the correct type when using lists of ranges * gst/gstvalue.c: (gst_value_list_prepend_value), (gst_value_list_append_value): copy the value before adding to the list (d'oh) * gst/gstvalue.c: (gst_value_subtract_int_range_int), (gst_value_subtract_int_range_int_range): handle overflows correctly * gst/gstvalue.c: (gst_value_subtract_from_list): fix memleak * testsuite/caps/caps.h: add a caps that caused segfaults --- diff --git a/ChangeLog b/ChangeLog index e11c1b449c..6ce766b7dd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,32 @@ +2004-04-22 Benjamin Otte + + * docs/gst/tmpl/gstcaps.sgml: + * docs/gst/tmpl/gstfilesrc.sgml: + * docs/gst/tmpl/gststructure.sgml: + * docs/gst/tmpl/gstvalue.sgml: + update for recent API changes + * gst/gstcaps.c: (gst_caps_do_simplify): + fix to stop trying with a freed structure + * gst/gstpad.c: (gst_pad_link_fixate): + simplify caps + * gst/gstpad.c: (gst_pad_template_get_caps_by_name): + remove C++ comment + * gst/gstpad.h: + deprecate gst_pad_template_get_caps_by_name, it doesn't work anyway + * gst/gststructure.c: (gst_structure_value_get_generic_type), + (gst_structure_to_string): + keep the correct type when using lists of ranges + * gst/gstvalue.c: (gst_value_list_prepend_value), + (gst_value_list_append_value): + copy the value before adding to the list (d'oh) + * gst/gstvalue.c: (gst_value_subtract_int_range_int), + (gst_value_subtract_int_range_int_range): + handle overflows correctly + * gst/gstvalue.c: (gst_value_subtract_from_list): + fix memleak + * testsuite/caps/caps.h: + add a caps that caused segfaults + 2004-04-22 Benjamin Otte * testsuite/refcounting/pad.c: (main): diff --git a/docs/gst/tmpl/gstcaps.sgml b/docs/gst/tmpl/gstcaps.sgml index b657b0f5d3..353904bffe 100644 --- a/docs/gst/tmpl/gstcaps.sgml +++ b/docs/gst/tmpl/gstcaps.sgml @@ -289,6 +289,16 @@ Structure describing sets of media formats @Returns: + + + + + +@caps1: +@caps2: +@Returns: + + @@ -309,6 +319,16 @@ Structure describing sets of media formats @Returns: + + + + + +@subset: +@superset: +@Returns: + + @@ -347,6 +367,14 @@ Structure describing sets of media formats @Returns: + + + + + +@caps: + + @@ -415,3 +443,13 @@ Structure describing sets of media formats @Returns: + + + + + +@minuend: +@subtrahend: +@Returns: + + diff --git a/docs/gst/tmpl/gstfilesrc.sgml b/docs/gst/tmpl/gstfilesrc.sgml index b2bb6fb17c..7c97fbe61d 100644 --- a/docs/gst/tmpl/gstfilesrc.sgml +++ b/docs/gst/tmpl/gstfilesrc.sgml @@ -31,6 +31,7 @@ and subbuffers. @block_size: @touch: @using_mmap: +@is_regular: @mapbuf: @mapsize: @need_discont: diff --git a/docs/gst/tmpl/gststructure.sgml b/docs/gst/tmpl/gststructure.sgml index 9f98fb5567..a0b2b7eab4 100644 --- a/docs/gst/tmpl/gststructure.sgml +++ b/docs/gst/tmpl/gststructure.sgml @@ -110,70 +110,79 @@ Generic structure containing fields of names and values @name: - + + + + + +@structure: +@Returns: + + + @structure: @field: -@value: +@Returns: - + @structure: -@fieldname: -@value: - @field: +@value: - + @structure: @fieldname: -@Varargs: +@Returns: @field: - + @structure: @fieldname: -@varargs: +@value: @field: - + @structure: +@fieldname: +@Varargs: + @field: -@Returns: - + @structure: @fieldname: -@Returns: +@varargs: @field: diff --git a/docs/gst/tmpl/gstvalue.sgml b/docs/gst/tmpl/gstvalue.sgml index aa6203cfb5..f0d18d8532 100644 --- a/docs/gst/tmpl/gstvalue.sgml +++ b/docs/gst/tmpl/gstvalue.sgml @@ -195,6 +195,17 @@ GValue implementations specific to GStreamer @Returns: + + + + + +@dest: +@minuend: +@subtrahend: +@Returns: + + @@ -467,6 +478,37 @@ GValue implementations specific to GStreamer @func: + + + + + +@dest: +@minuend: +@subtrahend: +@Returns: + + + + + + + +@minuend: +@subtrahend: +@Returns: + + + + + + + +@minuend_type: +@subtrahend_type: +@func: + + diff --git a/gst/gstcaps.c b/gst/gstcaps.c index d306b61316..b7da8906f0 100644 --- a/gst/gstcaps.c +++ b/gst/gstcaps.c @@ -21,6 +21,7 @@ #include "config.h" #endif #include +#include #include @@ -1222,11 +1223,12 @@ gst_caps_do_simplify (GstCaps * caps) break; } result = gst_caps_structure_simplify (simplify, compare); - /*g_print ("%s - %s = %s\n", - gst_structure_to_string (simplify), - gst_structure_to_string (compare), - result ? gst_structure_to_string (result) : "---"); - */ +#if 0 + g_print ("%s - %s = %s\n", + gst_structure_to_string (simplify), + gst_structure_to_string (compare), + result ? gst_structure_to_string (result) : "---"); +#endif if (result) { gst_structure_free (simplify); g_ptr_array_index (caps->structs, i) = result; @@ -1234,6 +1236,7 @@ gst_caps_do_simplify (GstCaps * caps) } else { gst_caps_remove_structure (caps, i); start--; + break; } } } diff --git a/gst/gstpad.c b/gst/gstpad.c index 9db07548a1..c32e1f9d60 100644 --- a/gst/gstpad.c +++ b/gst/gstpad.c @@ -2689,7 +2689,6 @@ gst_pad_template_get_caps_by_name (GstPadTemplate * templ, const gchar * name) return NULL; /* FIXME */ - //return gst_caps_copy (gst_caps_get_by_name (caps, name)); return NULL; } diff --git a/gst/gstpad.h b/gst/gstpad.h index 541b28bad0..e62863f914 100644 --- a/gst/gstpad.h +++ b/gst/gstpad.h @@ -511,7 +511,9 @@ GstPadTemplate* gst_pad_template_new (const gchar *name_template, GstPadTemplate * gst_static_pad_template_get (GstStaticPadTemplate *pad_template); const GstCaps* gst_pad_template_get_caps (GstPadTemplate *templ); +#ifndef GST_DISABLE_DEPRECATED const GstCaps* gst_pad_template_get_caps_by_name (GstPadTemplate *templ, const gchar *name); +#endif #ifndef GST_DISABLE_LOADSAVE xmlNodePtr gst_ghost_pad_save_thyself (GstPad *pad, diff --git a/gst/gststructure.c b/gst/gststructure.c index 8319f5ab06..6ba66bd458 100644 --- a/gst/gststructure.c +++ b/gst/gststructure.c @@ -1040,6 +1040,27 @@ gst_structure_to_abbr (GType type) return g_type_name (type); } +static GType +gst_structure_value_get_generic_type (GValue * val) +{ + if (G_VALUE_TYPE (val) == GST_TYPE_LIST) { + GArray *array = g_value_peek_pointer (val); + + if (array->len > 0) { + GValue *value = &g_array_index (array, GValue, 0); + + return gst_structure_value_get_generic_type (value); + } else { + return G_TYPE_INT; + } + } else if (G_VALUE_TYPE (val) == GST_TYPE_INT_RANGE) { + return G_TYPE_INT; + } else if (G_VALUE_TYPE (val) == GST_TYPE_DOUBLE_RANGE) { + return G_TYPE_DOUBLE; + } + return G_VALUE_TYPE (val); +} + #define GST_ASCII_IS_STRING(c) (g_ascii_isalnum((c)) || ((c) == '_') || \ ((c) == '-') || ((c) == '+') || ((c) == '/') || ((c) == ':') || \ ((c) == '.')) @@ -1077,23 +1098,8 @@ gst_structure_to_string (const GstStructure * structure) field = GST_STRUCTURE_FIELD (structure, i); t = gst_value_serialize (&field->value); - type = G_VALUE_TYPE (&field->value); - - if (type == GST_TYPE_LIST) { - GArray *array = g_value_peek_pointer (&field->value); + type = gst_structure_value_get_generic_type (&field->value); - if (array->len > 0) { - GValue *value = &g_array_index (array, GValue, 0); - - type = G_VALUE_TYPE (value); - } else { - type = G_TYPE_INT; - } - } else if (G_VALUE_TYPE (&field->value) == GST_TYPE_INT_RANGE) { - type = G_TYPE_INT; - } else if (G_VALUE_TYPE (&field->value) == GST_TYPE_DOUBLE_RANGE) { - type = G_TYPE_DOUBLE; - } g_string_append_printf (s, ", %s=(%s)%s", g_quark_to_string (field->name), gst_structure_to_abbr (type), t); g_free (t); diff --git a/gst/gstvalue.c b/gst/gstvalue.c index 83240b366f..05ae31a2b4 100644 --- a/gst/gstvalue.c +++ b/gst/gstvalue.c @@ -160,9 +160,12 @@ gst_value_lcopy_list (const GValue * value, guint n_collect_values, void gst_value_list_prepend_value (GValue * value, const GValue * prepend_value) { + GValue val = { 0, }; + g_return_if_fail (GST_VALUE_HOLDS_LIST (value)); - g_array_prepend_vals ((GArray *) value->data[0].v_pointer, prepend_value, 1); + gst_value_init_and_copy (&val, prepend_value); + g_array_prepend_vals ((GArray *) value->data[0].v_pointer, &val, 1); } /** @@ -175,9 +178,12 @@ gst_value_list_prepend_value (GValue * value, const GValue * prepend_value) void gst_value_list_append_value (GValue * value, const GValue * append_value) { + GValue val = { 0, }; + g_return_if_fail (GST_VALUE_HOLDS_LIST (value)); - g_array_append_vals ((GArray *) value->data[0].v_pointer, append_value, 1); + gst_value_init_and_copy (&val, append_value); + g_array_append_vals ((GArray *) value->data[0].v_pointer, &val, 1); } /** @@ -1343,16 +1349,16 @@ gst_value_subtract_int_range_int_range (GValue * dest, const GValue * minuend, int min2 = gst_value_get_int_range_min (subtrahend); int max2 = gst_value_get_int_range_max (subtrahend); - if (max2 == G_MAXINT) { - max2--; - max1--; - } - if (min2 == G_MININT) { - min2++; - min1++; + if (max2 == G_MAXINT && min2 == G_MININT) { + return FALSE; + } else if (max2 == G_MAXINT) { + return gst_value_create_new_range (dest, min1, MIN (min2 - 1, max1), 1, 0); + } else if (min2 == G_MININT) { + return gst_value_create_new_range (dest, MAX (max2 + 1, min1), max1, 1, 0); + } else { + return gst_value_create_new_range (dest, min1, MIN (min2 - 1, max1), + MAX (max2 + 1, min1), max1); } - return gst_value_create_new_range (dest, min1, MIN (min2 - 1, max1), - MAX (max2 + 1, min1), max1); } static gboolean @@ -1457,6 +1463,7 @@ gst_value_subtract_from_list (GValue * dest, const GValue * minuend, gst_value_init_and_copy (&temp, dest); g_value_unset (dest); gst_value_list_concat (dest, &temp, &subtraction); + g_value_unset (&temp); } g_value_unset (&subtraction); } diff --git a/tests/old/testsuite/caps/caps.h b/tests/old/testsuite/caps/caps.h index 39e5c2f787..e198dbe307 100644 --- a/tests/old/testsuite/caps/caps.h +++ b/tests/old/testsuite/caps/caps.h @@ -5,6 +5,7 @@ include this file */ static const gchar *caps_list[] = { + "audio/x-adpcm, layout=(string)quicktime; audio/x-adpcm, layout=(string)quicktime; audio/x-adpcm, layout=(string)wav; audio/x-adpcm, layout=(string)wav; audio/x-adpcm, layout=(string)dk3; audio/x-adpcm, layout=(string)dk3; audio/x-adpcm, layout=(string)dk4; audio/x-adpcm, layout=(string)dk4; audio/x-adpcm, layout=(string)westwood; audio/x-adpcm, layout=(string)westwood; audio/x-adpcm, layout=(string)smjpeg; audio/x-adpcm, layout=(string)smjpeg; audio/x-adpcm, layout=(string)microsoft; audio/x-adpcm, layout=(string)microsoft; audio/x-adpcm, layout=(string)4xm; audio/x-adpcm, layout=(string)4xm; audio/x-adpcm, layout=(string)xa; audio/x-adpcm, layout=(string)xa; audio/x-adpcm, layout=(string)adx; audio/x-adpcm, layout=(string)adx; audio/x-adpcm, layout=(string)ea; audio/x-adpcm, layout=(string)ea; audio/x-adpcm, layout=(string)g726; audio/x-adpcm, layout=(string)g726", "video/x-raw-yuv, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(double)[ 0, 1.7976931348623157e+308 ], format=(fourcc)I420; video/x-raw-yuv, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(double)[ 0, 1.7976931348623157e+308 ], format=(fourcc)YUY2; video/x-raw-rgb, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(double)[ 0, 1.7976931348623157e+308 ], bpp=(int)24, depth=(int)24, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, endianness=(int)4321; video/x-raw-rgb, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(double)[ 0, 1.7976931348623157e+308 ], bpp=(int)24, depth=(int)24, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, endianness=(int)4321; video/x-raw-yuv, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(double)[ 0, 1.7976931348623157e+308 ], format=(fourcc)Y42B; video/x-raw-rgb, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(double)[ 0, 1.7976931348623157e+308 ], bpp=(int)32, depth=(int)24, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, endianness=(int)4321; video/x-raw-yuv, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(double)[ 0, 1.7976931348623157e+308 ], format=(fourcc)YUV9; video/x-raw-yuv, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(double)[ 0, 1.7976931348623157e+308 ], format=(fourcc)Y41B; video/x-raw-rgb, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(double)[ 0, 1.7976931348623157e+308 ], bpp=(int)16, depth=(int)16, red_mask=(int)63488, green_mask=(int)2016, blue_mask=(int)31, endianness=(int)1234; video/x-raw-rgb, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(double)[ 0, 1.7976931348623157e+308 ], bpp=(int)16, depth=(int)15, red_mask=(int)31744, green_mask=(int)992, blue_mask=(int)31, endianness=(int)1234", "video/x-raw-yuv, format=(fourcc){ YUY2, I420 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-jpeg, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-divx, divxversion=(int)[ 3, 5 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-xvid, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-3ivx, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-msmpeg, msmpegversion=(int)[ 41, 43 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/mpeg, mpegversion=(int)1, systemstream=(boolean)false, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h263, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-dv, systemstream=(boolean)false, width=(int)720, height=(int){ 576, 480 }; video/x-huffyuv, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]", "video/x-raw-yuv, format=(fourcc){ YUY2, I420 }, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]; image/jpeg, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]; video/x-divx, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], divxversion=(int)[ 3, 5 ]; video/x-xvid, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]; video/x-3ivx, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]; video/x-msmpeg, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], msmpegversion=(int)[ 41, 43 ]; video/mpeg, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], mpegversion=(int)1, systemstream=(boolean)false; video/x-h263, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]; video/x-dv, width=(int)720, height=(int){ 576, 480 }, systemstream=(boolean)false; video/x-huffyuv, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]", diff --git a/testsuite/caps/caps.h b/testsuite/caps/caps.h index 39e5c2f787..e198dbe307 100644 --- a/testsuite/caps/caps.h +++ b/testsuite/caps/caps.h @@ -5,6 +5,7 @@ include this file */ static const gchar *caps_list[] = { + "audio/x-adpcm, layout=(string)quicktime; audio/x-adpcm, layout=(string)quicktime; audio/x-adpcm, layout=(string)wav; audio/x-adpcm, layout=(string)wav; audio/x-adpcm, layout=(string)dk3; audio/x-adpcm, layout=(string)dk3; audio/x-adpcm, layout=(string)dk4; audio/x-adpcm, layout=(string)dk4; audio/x-adpcm, layout=(string)westwood; audio/x-adpcm, layout=(string)westwood; audio/x-adpcm, layout=(string)smjpeg; audio/x-adpcm, layout=(string)smjpeg; audio/x-adpcm, layout=(string)microsoft; audio/x-adpcm, layout=(string)microsoft; audio/x-adpcm, layout=(string)4xm; audio/x-adpcm, layout=(string)4xm; audio/x-adpcm, layout=(string)xa; audio/x-adpcm, layout=(string)xa; audio/x-adpcm, layout=(string)adx; audio/x-adpcm, layout=(string)adx; audio/x-adpcm, layout=(string)ea; audio/x-adpcm, layout=(string)ea; audio/x-adpcm, layout=(string)g726; audio/x-adpcm, layout=(string)g726", "video/x-raw-yuv, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(double)[ 0, 1.7976931348623157e+308 ], format=(fourcc)I420; video/x-raw-yuv, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(double)[ 0, 1.7976931348623157e+308 ], format=(fourcc)YUY2; video/x-raw-rgb, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(double)[ 0, 1.7976931348623157e+308 ], bpp=(int)24, depth=(int)24, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, endianness=(int)4321; video/x-raw-rgb, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(double)[ 0, 1.7976931348623157e+308 ], bpp=(int)24, depth=(int)24, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, endianness=(int)4321; video/x-raw-yuv, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(double)[ 0, 1.7976931348623157e+308 ], format=(fourcc)Y42B; video/x-raw-rgb, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(double)[ 0, 1.7976931348623157e+308 ], bpp=(int)32, depth=(int)24, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, endianness=(int)4321; video/x-raw-yuv, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(double)[ 0, 1.7976931348623157e+308 ], format=(fourcc)YUV9; video/x-raw-yuv, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(double)[ 0, 1.7976931348623157e+308 ], format=(fourcc)Y41B; video/x-raw-rgb, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(double)[ 0, 1.7976931348623157e+308 ], bpp=(int)16, depth=(int)16, red_mask=(int)63488, green_mask=(int)2016, blue_mask=(int)31, endianness=(int)1234; video/x-raw-rgb, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(double)[ 0, 1.7976931348623157e+308 ], bpp=(int)16, depth=(int)15, red_mask=(int)31744, green_mask=(int)992, blue_mask=(int)31, endianness=(int)1234", "video/x-raw-yuv, format=(fourcc){ YUY2, I420 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-jpeg, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-divx, divxversion=(int)[ 3, 5 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-xvid, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-3ivx, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-msmpeg, msmpegversion=(int)[ 41, 43 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/mpeg, mpegversion=(int)1, systemstream=(boolean)false, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h263, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-dv, systemstream=(boolean)false, width=(int)720, height=(int){ 576, 480 }; video/x-huffyuv, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]", "video/x-raw-yuv, format=(fourcc){ YUY2, I420 }, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]; image/jpeg, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]; video/x-divx, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], divxversion=(int)[ 3, 5 ]; video/x-xvid, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]; video/x-3ivx, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]; video/x-msmpeg, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], msmpegversion=(int)[ 41, 43 ]; video/mpeg, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], mpegversion=(int)1, systemstream=(boolean)false; video/x-h263, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]; video/x-dv, width=(int)720, height=(int){ 576, 480 }, systemstream=(boolean)false; video/x-huffyuv, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]",