1 /* 2 * This file is part of gtkD. 3 * 4 * gtkD is free software; you can redistribute it and/or modify 5 * it under the terms of the GNU Lesser General Public License 6 * as published by the Free Software Foundation; either version 3 7 * of the License, or (at your option) any later version, with 8 * some exceptions, please read the COPYING file. 9 * 10 * gtkD 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 13 * GNU Lesser General Public License for more details. 14 * 15 * You should have received a copy of the GNU Lesser General Public License 16 * along with gtkD; if not, write to the Free Software 17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110, USA 18 */ 19 20 // generated automatically - do not change 21 // find conversion definition on APILookup.txt 22 // implement new conversion functionalities on the wrap.utils pakage 23 24 25 module gstreamer.c.types; 26 27 public import glib.c.types; 28 public import gobject.c.types; 29 30 31 /** 32 * A datatype to hold the handle to an outstanding sync or async clock callback. 33 */ 34 public alias void* GstClockID; 35 36 /** 37 * A datatype to hold a time, measured in nanoseconds. 38 */ 39 public alias ulong GstClockTime; 40 41 /** 42 * A datatype to hold a time difference, measured in nanoseconds. 43 */ 44 public alias long GstClockTimeDiff; 45 46 public alias ulong GstElementFactoryListType; 47 48 /** 49 * Flags for allocators. 50 */ 51 public enum GstAllocatorFlags 52 { 53 /** 54 * The allocator has a custom alloc function. 55 */ 56 CUSTOM_ALLOC = 16, 57 /** 58 * first flag that can be used for custom purposes 59 */ 60 LAST = 1048576, 61 } 62 alias GstAllocatorFlags AllocatorFlags; 63 64 /** 65 * GstBinFlags are a set of flags specific to bins. Most are set/used 66 * internally. They can be checked using the GST_OBJECT_FLAG_IS_SET () macro, 67 * and (un)set using GST_OBJECT_FLAG_SET () and GST_OBJECT_FLAG_UNSET (). 68 */ 69 public enum GstBinFlags 70 { 71 /** 72 * don't resync a state change when elements are 73 * added or linked in the bin (Since 1.0.5) 74 */ 75 NO_RESYNC = 16384, 76 /** 77 * Indicates whether the bin can handle elements 78 * that add/remove source pads at any point in time without 79 * first posting a no-more-pads signal (Since 1.10) 80 */ 81 STREAMS_AWARE = 32768, 82 /** 83 * the last enum in the series of flags for bins. 84 * Derived classes can use this as first value in a list of flags. 85 */ 86 LAST = 524288, 87 } 88 alias GstBinFlags BinFlags; 89 90 /** 91 * A set of flags that can be provided to the gst_buffer_copy_into() 92 * function to specify which items should be copied. 93 */ 94 public enum GstBufferCopyFlags 95 { 96 /** 97 * copy nothing 98 */ 99 NONE = 0, 100 /** 101 * flag indicating that buffer flags should be copied 102 */ 103 FLAGS = 1, 104 /** 105 * flag indicating that buffer pts, dts, 106 * duration, offset and offset_end should be copied 107 */ 108 TIMESTAMPS = 2, 109 /** 110 * flag indicating that buffer meta should be 111 * copied 112 */ 113 META = 4, 114 /** 115 * flag indicating that buffer memory should be reffed 116 * and appended to already existing memory. Unless the memory is marked as 117 * NO_SHARE, no actual copy of the memory is made but it is simply reffed. 118 * Add @GST_BUFFER_COPY_DEEP to force a real copy. 119 */ 120 MEMORY = 8, 121 /** 122 * flag indicating that buffer memory should be 123 * merged 124 */ 125 MERGE = 16, 126 /** 127 * flag indicating that memory should always be 128 * copied instead of reffed (Since 1.2) 129 */ 130 DEEP = 32, 131 } 132 alias GstBufferCopyFlags BufferCopyFlags; 133 134 /** 135 * A set of buffer flags used to describe properties of a #GstBuffer. 136 */ 137 public enum GstBufferFlags 138 { 139 /** 140 * the buffer is live data and should be discarded in 141 * the PAUSED state. 142 */ 143 LIVE = 16, 144 /** 145 * the buffer contains data that should be dropped 146 * because it will be clipped against the segment 147 * boundaries or because it does not contain data 148 * that should be shown to the user. 149 */ 150 DECODE_ONLY = 32, 151 /** 152 * the buffer marks a data discontinuity in the stream. 153 * This typically occurs after a seek or a dropped buffer 154 * from a live or network source. 155 */ 156 DISCONT = 64, 157 /** 158 * the buffer timestamps might have a discontinuity 159 * and this buffer is a good point to resynchronize. 160 */ 161 RESYNC = 128, 162 /** 163 * the buffer data is corrupted. 164 */ 165 CORRUPTED = 256, 166 /** 167 * the buffer contains a media specific marker. for 168 * video this is typically the end of a frame boundary, for audio 169 * this is usually the start of a talkspurt. 170 */ 171 MARKER = 512, 172 /** 173 * the buffer contains header information that is 174 * needed to decode the following data. 175 */ 176 HEADER = 1024, 177 /** 178 * the buffer has been created to fill a gap in the 179 * stream and contains media neutral data (elements can 180 * switch to optimized code path that ignores the buffer 181 * content). 182 */ 183 GAP = 2048, 184 /** 185 * the buffer can be dropped without breaking the 186 * stream, for example to reduce bandwidth. 187 */ 188 DROPPABLE = 4096, 189 /** 190 * this unit cannot be decoded independently. 191 */ 192 DELTA_UNIT = 8192, 193 /** 194 * this flag is set when memory of the buffer 195 * is added/removed 196 */ 197 TAG_MEMORY = 16384, 198 /** 199 * Elements which write to disk or permanent 200 * storage should ensure the data is synced after 201 * writing the contents of this buffer. (Since 1.6) 202 */ 203 SYNC_AFTER = 32768, 204 /** 205 * This buffer is important and should not be dropped. 206 * This can be used to mark important buffers, e.g. to flag 207 * RTP packets carrying keyframes or codec setup data for RTP 208 * Forward Error Correction purposes, or to prevent still video 209 * frames from being dropped by elements due to QoS. (Since 1.14) 210 */ 211 NON_DROPPABLE = 65536, 212 /** 213 * additional media specific flags can be added starting from 214 * this flag. 215 */ 216 LAST = 1048576, 217 } 218 alias GstBufferFlags BufferFlags; 219 220 /** 221 * Additional flags to control the allocation of a buffer 222 */ 223 public enum GstBufferPoolAcquireFlags 224 { 225 /** 226 * no flags 227 */ 228 NONE = 0, 229 /** 230 * buffer is keyframe 231 */ 232 KEY_UNIT = 1, 233 /** 234 * when the bufferpool is empty, acquire_buffer 235 * will by default block until a buffer is released into the pool again. Setting 236 * this flag makes acquire_buffer return #GST_FLOW_EOS instead of blocking. 237 */ 238 DONTWAIT = 2, 239 /** 240 * buffer is discont 241 */ 242 DISCONT = 4, 243 /** 244 * last flag, subclasses can use private flags 245 * starting from this value. 246 */ 247 LAST = 65536, 248 } 249 alias GstBufferPoolAcquireFlags BufferPoolAcquireFlags; 250 251 /** 252 * The different types of buffering methods. 253 */ 254 public enum GstBufferingMode 255 { 256 /** 257 * a small amount of data is buffered 258 */ 259 STREAM = 0, 260 /** 261 * the stream is being downloaded 262 */ 263 DOWNLOAD = 1, 264 /** 265 * the stream is being downloaded in a ringbuffer 266 */ 267 TIMESHIFT = 2, 268 /** 269 * the stream is a live stream 270 */ 271 LIVE = 3, 272 } 273 alias GstBufferingMode BufferingMode; 274 275 /** 276 * The standard flags that a bus may have. 277 */ 278 public enum GstBusFlags 279 { 280 /** 281 * The bus is currently dropping all messages 282 */ 283 FLUSHING = 16, 284 /** 285 * offset to define more flags 286 */ 287 FLAG_LAST = 32, 288 } 289 alias GstBusFlags BusFlags; 290 291 /** 292 * The result values for a GstBusSyncHandler. 293 */ 294 public enum GstBusSyncReply 295 { 296 /** 297 * drop the message 298 */ 299 DROP = 0, 300 /** 301 * pass the message to the async queue 302 */ 303 PASS = 1, 304 /** 305 * pass message to async queue, continue if message is handled 306 */ 307 ASYNC = 2, 308 } 309 alias GstBusSyncReply BusSyncReply; 310 311 /** 312 * Extra flags for a caps. 313 */ 314 public enum GstCapsFlags 315 { 316 /** 317 * Caps has no specific content, but can contain 318 * anything. 319 */ 320 ANY = 16, 321 } 322 alias GstCapsFlags CapsFlags; 323 324 /** 325 * Modes of caps intersection 326 * 327 * @GST_CAPS_INTERSECT_ZIG_ZAG tries to preserve overall order of both caps 328 * by iterating on the caps' structures as the following matrix shows: 329 * |[ 330 * caps1 331 * +------------- 332 * | 1 2 4 7 333 * caps2 | 3 5 8 10 334 * | 6 9 11 12 335 * ]| 336 * Used when there is no explicit precedence of one caps over the other. e.g. 337 * tee's sink pad getcaps function, it will probe its src pad peers' for their 338 * caps and intersect them with this mode. 339 * 340 * @GST_CAPS_INTERSECT_FIRST is useful when an element wants to preserve 341 * another element's caps priority order when intersecting with its own caps. 342 * Example: If caps1 is [A, B, C] and caps2 is [E, B, D, A], the result 343 * would be [A, B], maintaining the first caps priority on the intersection. 344 */ 345 public enum GstCapsIntersectMode 346 { 347 /** 348 * Zig-zags over both caps. 349 */ 350 ZIG_ZAG = 0, 351 /** 352 * Keeps the first caps order. 353 */ 354 FIRST = 1, 355 } 356 alias GstCapsIntersectMode CapsIntersectMode; 357 358 /** 359 * The type of the clock entry 360 */ 361 public enum GstClockEntryType 362 { 363 /** 364 * a single shot timeout 365 */ 366 SINGLE = 0, 367 /** 368 * a periodic timeout request 369 */ 370 PERIODIC = 1, 371 } 372 alias GstClockEntryType ClockEntryType; 373 374 /** 375 * The capabilities of this clock 376 */ 377 public enum GstClockFlags 378 { 379 /** 380 * clock can do a single sync timeout request 381 */ 382 CAN_DO_SINGLE_SYNC = 16, 383 /** 384 * clock can do a single async timeout request 385 */ 386 CAN_DO_SINGLE_ASYNC = 32, 387 /** 388 * clock can do sync periodic timeout requests 389 */ 390 CAN_DO_PERIODIC_SYNC = 64, 391 /** 392 * clock can do async periodic timeout callbacks 393 */ 394 CAN_DO_PERIODIC_ASYNC = 128, 395 /** 396 * clock's resolution can be changed 397 */ 398 CAN_SET_RESOLUTION = 256, 399 /** 400 * clock can be slaved to a master clock 401 */ 402 CAN_SET_MASTER = 512, 403 /** 404 * clock needs to be synced before it can be used 405 * (Since 1.6) 406 */ 407 NEEDS_STARTUP_SYNC = 1024, 408 /** 409 * subclasses can add additional flags starting from this flag 410 */ 411 LAST = 4096, 412 } 413 alias GstClockFlags ClockFlags; 414 415 /** 416 * The return value of a clock operation. 417 */ 418 public enum GstClockReturn 419 { 420 /** 421 * The operation succeeded. 422 */ 423 OK = 0, 424 /** 425 * The operation was scheduled too late. 426 */ 427 EARLY = 1, 428 /** 429 * The clockID was unscheduled 430 */ 431 UNSCHEDULED = 2, 432 /** 433 * The ClockID is busy 434 */ 435 BUSY = 3, 436 /** 437 * A bad time was provided to a function. 438 */ 439 BADTIME = 4, 440 /** 441 * An error occurred 442 */ 443 ERROR = 5, 444 /** 445 * Operation is not supported 446 */ 447 UNSUPPORTED = 6, 448 /** 449 * The ClockID is done waiting 450 */ 451 DONE = 7, 452 } 453 alias GstClockReturn ClockReturn; 454 455 /** 456 * The different kind of clocks. 457 */ 458 public enum GstClockType 459 { 460 /** 461 * time since Epoch 462 */ 463 REALTIME = 0, 464 /** 465 * monotonic time since some unspecified starting 466 * point 467 */ 468 MONOTONIC = 1, 469 /** 470 * some other time source is used (Since 1.0.5) 471 */ 472 OTHER = 2, 473 } 474 alias GstClockType ClockType; 475 476 /** 477 * Core errors are errors inside the core GStreamer library. 478 */ 479 public enum GstCoreError 480 { 481 /** 482 * a general error which doesn't fit in any other 483 * category. Make sure you add a custom message to the error call. 484 */ 485 FAILED = 1, 486 /** 487 * do not use this except as a placeholder for 488 * deciding where to go while developing code. 489 */ 490 TOO_LAZY = 2, 491 /** 492 * use this when you do not want to implement 493 * this functionality yet. 494 */ 495 NOT_IMPLEMENTED = 3, 496 /** 497 * used for state change errors. 498 */ 499 STATE_CHANGE = 4, 500 /** 501 * used for pad-related errors. 502 */ 503 PAD = 5, 504 /** 505 * used for thread-related errors. 506 */ 507 THREAD = 6, 508 /** 509 * used for negotiation-related errors. 510 */ 511 NEGOTIATION = 7, 512 /** 513 * used for event-related errors. 514 */ 515 EVENT = 8, 516 /** 517 * used for seek-related errors. 518 */ 519 SEEK = 9, 520 /** 521 * used for caps-related errors. 522 */ 523 CAPS = 10, 524 /** 525 * used for negotiation-related errors. 526 */ 527 TAG = 11, 528 /** 529 * used if a plugin is missing. 530 */ 531 MISSING_PLUGIN = 12, 532 /** 533 * used for clock related errors. 534 */ 535 CLOCK = 13, 536 /** 537 * used if functionality has been disabled at 538 * compile time. 539 */ 540 DISABLED = 14, 541 /** 542 * the number of core error types. 543 */ 544 NUM_ERRORS = 15, 545 } 546 alias GstCoreError CoreError; 547 548 /** 549 * These are some terminal style flags you can use when creating your 550 * debugging categories to make them stand out in debugging output. 551 */ 552 public enum GstDebugColorFlags 553 { 554 /** 555 * Use black as foreground color. 556 */ 557 FG_BLACK = 0, 558 /** 559 * Use red as foreground color. 560 */ 561 FG_RED = 1, 562 /** 563 * Use green as foreground color. 564 */ 565 FG_GREEN = 2, 566 /** 567 * Use yellow as foreground color. 568 */ 569 FG_YELLOW = 3, 570 /** 571 * Use blue as foreground color. 572 */ 573 FG_BLUE = 4, 574 /** 575 * Use magenta as foreground color. 576 */ 577 FG_MAGENTA = 5, 578 /** 579 * Use cyan as foreground color. 580 */ 581 FG_CYAN = 6, 582 /** 583 * Use white as foreground color. 584 */ 585 FG_WHITE = 7, 586 /** 587 * Use black as background color. 588 */ 589 BG_BLACK = 0, 590 /** 591 * Use red as background color. 592 */ 593 BG_RED = 16, 594 /** 595 * Use green as background color. 596 */ 597 BG_GREEN = 32, 598 /** 599 * Use yellow as background color. 600 */ 601 BG_YELLOW = 48, 602 /** 603 * Use blue as background color. 604 */ 605 BG_BLUE = 64, 606 /** 607 * Use magenta as background color. 608 */ 609 BG_MAGENTA = 80, 610 /** 611 * Use cyan as background color. 612 */ 613 BG_CYAN = 96, 614 /** 615 * Use white as background color. 616 */ 617 BG_WHITE = 112, 618 /** 619 * Make the output bold. 620 */ 621 BOLD = 256, 622 /** 623 * Underline the output. 624 */ 625 UNDERLINE = 512, 626 } 627 alias GstDebugColorFlags DebugColorFlags; 628 629 public enum GstDebugColorMode 630 { 631 /** 632 * Do not use colors in logs. 633 */ 634 OFF = 0, 635 /** 636 * Paint logs in a platform-specific way. 637 */ 638 ON = 1, 639 /** 640 * Paint logs with UNIX terminal color codes 641 * no matter what platform GStreamer is running on. 642 */ 643 UNIX = 2, 644 } 645 alias GstDebugColorMode DebugColorMode; 646 647 /** 648 * Available details for pipeline graphs produced by GST_DEBUG_BIN_TO_DOT_FILE() 649 * and GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS(). 650 */ 651 public enum GstDebugGraphDetails 652 { 653 /** 654 * show caps-name on edges 655 */ 656 MEDIA_TYPE = 1, 657 /** 658 * show caps-details on edges 659 */ 660 CAPS_DETAILS = 2, 661 /** 662 * show modified parameters on 663 * elements 664 */ 665 NON_DEFAULT_PARAMS = 4, 666 /** 667 * show element states 668 */ 669 STATES = 8, 670 /** 671 * show full element parameter values even 672 * if they are very long 673 */ 674 FULL_PARAMS = 16, 675 /** 676 * show all the typical details that one might want 677 */ 678 ALL = 15, 679 /** 680 * show all details regardless of how large or 681 * verbose they make the resulting output 682 */ 683 VERBOSE = -1, 684 } 685 alias GstDebugGraphDetails DebugGraphDetails; 686 687 /** 688 * The level defines the importance of a debugging message. The more important a 689 * message is, the greater the probability that the debugging system outputs it. 690 */ 691 public enum GstDebugLevel 692 { 693 /** 694 * No debugging level specified or desired. Used to deactivate 695 * debugging output. 696 */ 697 NONE = 0, 698 /** 699 * Error messages are to be used only when an error occurred 700 * that stops the application from keeping working correctly. 701 * An examples is gst_element_error, which outputs a message with this priority. 702 * It does not mean that the application is terminating as with g_error. 703 */ 704 ERROR = 1, 705 /** 706 * Warning messages are to inform about abnormal behaviour 707 * that could lead to problems or weird behaviour later on. An example of this 708 * would be clocking issues ("your computer is pretty slow") or broken input 709 * data ("Can't synchronize to stream.") 710 */ 711 WARNING = 2, 712 /** 713 * Fixme messages are messages that indicate that something 714 * in the executed code path is not fully implemented or handled yet. Note 715 * that this does not replace proper error handling in any way, the purpose 716 * of this message is to make it easier to spot incomplete/unfinished pieces 717 * of code when reading the debug log. 718 */ 719 FIXME = 3, 720 /** 721 * Informational messages should be used to keep the developer 722 * updated about what is happening. 723 * Examples where this should be used are when a typefind function has 724 * successfully determined the type of the stream or when an mp3 plugin detects 725 * the format to be used. ("This file has mono sound.") 726 */ 727 INFO = 4, 728 /** 729 * Debugging messages should be used when something common 730 * happens that is not the expected default behavior, or something that's 731 * useful to know but doesn't happen all the time (ie. per loop iteration or 732 * buffer processed or event handled). 733 * An example would be notifications about state changes or receiving/sending 734 * of events. 735 */ 736 DEBUG = 5, 737 /** 738 * Log messages are messages that are very common but might be 739 * useful to know. As a rule of thumb a pipeline that is running as expected 740 * should never output anything else but LOG messages whilst processing data. 741 * Use this log level to log recurring information in chain functions and 742 * loop functions, for example. 743 */ 744 LOG = 6, 745 /** 746 * Tracing-related messages. 747 * Examples for this are referencing/dereferencing of objects. 748 */ 749 TRACE = 7, 750 /** 751 * memory dump messages are used to log (small) chunks of 752 * data as memory dumps in the log. They will be displayed as hexdump with 753 * ASCII characters. 754 */ 755 MEMDUMP = 9, 756 /** 757 * The number of defined debugging levels. 758 */ 759 COUNT = 10, 760 } 761 alias GstDebugLevel DebugLevel; 762 763 /** 764 * The standard flags that an element may have. 765 */ 766 public enum GstElementFlags 767 { 768 /** 769 * ignore state changes from parent 770 */ 771 LOCKED_STATE = 16, 772 /** 773 * the element is a sink 774 */ 775 SINK = 32, 776 /** 777 * the element is a source. 778 */ 779 SOURCE = 64, 780 /** 781 * the element can provide a clock 782 */ 783 PROVIDE_CLOCK = 128, 784 /** 785 * the element requires a clock 786 */ 787 REQUIRE_CLOCK = 256, 788 /** 789 * the element can use an index 790 */ 791 INDEXABLE = 512, 792 /** 793 * offset to define more flags 794 */ 795 LAST = 16384, 796 } 797 alias GstElementFlags ElementFlags; 798 799 /** 800 * #GstEventType lists the standard event types that can be sent in a pipeline. 801 * 802 * The custom event types can be used for private messages between elements 803 * that can't be expressed using normal 804 * GStreamer buffer passing semantics. Custom events carry an arbitrary 805 * #GstStructure. 806 * Specific custom events are distinguished by the name of the structure. 807 */ 808 public enum GstEventType 809 { 810 /** 811 * unknown event. 812 */ 813 UNKNOWN = 0, 814 /** 815 * Start a flush operation. This event clears all data 816 * from the pipeline and unblock all streaming threads. 817 */ 818 FLUSH_START = 2563, 819 /** 820 * Stop a flush operation. This event resets the 821 * running-time of the pipeline. 822 */ 823 FLUSH_STOP = 5127, 824 /** 825 * Event to mark the start of a new stream. Sent before any 826 * other serialized event and only sent at the start of a new stream, 827 * not after flushing seeks. 828 */ 829 STREAM_START = 10254, 830 /** 831 * #GstCaps event. Notify the pad of a new media type. 832 */ 833 CAPS = 12814, 834 /** 835 * A new media segment follows in the dataflow. The 836 * segment events contains information for clipping buffers and 837 * converting buffer timestamps to running-time and 838 * stream-time. 839 */ 840 SEGMENT = 17934, 841 /** 842 * A new #GstStreamCollection is available (Since 1.10) 843 */ 844 STREAM_COLLECTION = 19230, 845 /** 846 * A new set of metadata tags has been found in the stream. 847 */ 848 TAG = 20510, 849 /** 850 * Notification of buffering requirements. Currently not 851 * used yet. 852 */ 853 BUFFERSIZE = 23054, 854 /** 855 * An event that sinks turn into a message. Used to 856 * send messages that should be emitted in sync with 857 * rendering. 858 */ 859 SINK_MESSAGE = 25630, 860 /** 861 * Indicates that there is no more data for 862 * the stream group ID in the message. Sent before EOS 863 * in some instances and should be handled mostly the same. (Since 1.10) 864 */ 865 STREAM_GROUP_DONE = 26894, 866 /** 867 * End-Of-Stream. No more data is to be expected to follow 868 * without either a STREAM_START event, or a FLUSH_STOP and a SEGMENT 869 * event. 870 */ 871 EOS = 28174, 872 /** 873 * An event which indicates that a new table of contents (TOC) 874 * was found or updated. 875 */ 876 TOC = 30750, 877 /** 878 * An event which indicates that new or updated 879 * encryption information has been found in the stream. 880 */ 881 PROTECTION = 33310, 882 /** 883 * Marks the end of a segment playback. 884 */ 885 SEGMENT_DONE = 38406, 886 /** 887 * Marks a gap in the datastream. 888 */ 889 GAP = 40966, 890 /** 891 * A quality message. Used to indicate to upstream elements 892 * that the downstream elements should adjust their processing 893 * rate. 894 */ 895 QOS = 48641, 896 /** 897 * A request for a new playback position and rate. 898 */ 899 SEEK = 51201, 900 /** 901 * Navigation events are usually used for communicating 902 * user requests, such as mouse or keyboard movements, 903 * to upstream elements. 904 */ 905 NAVIGATION = 53761, 906 /** 907 * Notification of new latency adjustment. Sinks will use 908 * the latency information to adjust their synchronisation. 909 */ 910 LATENCY = 56321, 911 /** 912 * A request for stepping through the media. Sinks will usually 913 * execute the step operation. 914 */ 915 STEP = 58881, 916 /** 917 * A request for upstream renegotiating caps and reconfiguring. 918 */ 919 RECONFIGURE = 61441, 920 /** 921 * A request for a new playback position based on TOC 922 * entry's UID. 923 */ 924 TOC_SELECT = 64001, 925 /** 926 * A request to select one or more streams (Since 1.10) 927 */ 928 SELECT_STREAMS = 66561, 929 /** 930 * Upstream custom event 931 */ 932 CUSTOM_UPSTREAM = 69121, 933 /** 934 * Downstream custom event that travels in the 935 * data flow. 936 */ 937 CUSTOM_DOWNSTREAM = 71686, 938 /** 939 * Custom out-of-band downstream event. 940 */ 941 CUSTOM_DOWNSTREAM_OOB = 74242, 942 /** 943 * Custom sticky downstream event. 944 */ 945 CUSTOM_DOWNSTREAM_STICKY = 76830, 946 /** 947 * Custom upstream or downstream event. 948 * In-band when travelling downstream. 949 */ 950 CUSTOM_BOTH = 79367, 951 /** 952 * Custom upstream or downstream out-of-band event. 953 */ 954 CUSTOM_BOTH_OOB = 81923, 955 } 956 alias GstEventType EventType; 957 958 /** 959 * #GstEventTypeFlags indicate the aspects of the different #GstEventType 960 * values. You can get the type flags of a #GstEventType with the 961 * gst_event_type_get_flags() function. 962 */ 963 public enum GstEventTypeFlags 964 { 965 /** 966 * Set if the event can travel upstream. 967 */ 968 UPSTREAM = 1, 969 /** 970 * Set if the event can travel downstream. 971 */ 972 DOWNSTREAM = 2, 973 /** 974 * Set if the event should be serialized with data 975 * flow. 976 */ 977 SERIALIZED = 4, 978 /** 979 * Set if the event is sticky on the pads. 980 */ 981 STICKY = 8, 982 /** 983 * Multiple sticky events can be on a pad, each 984 * identified by the event name. 985 */ 986 STICKY_MULTI = 16, 987 } 988 alias GstEventTypeFlags EventTypeFlags; 989 990 /** 991 * The result of passing data to a pad. 992 * 993 * Note that the custom return values should not be exposed outside of the 994 * element scope. 995 */ 996 public enum GstFlowReturn 997 { 998 /** 999 * Pre-defined custom success code. 1000 */ 1001 CUSTOM_SUCCESS_2 = 102, 1002 /** 1003 * Pre-defined custom success code (define your 1004 * custom success code to this to avoid compiler 1005 * warnings). 1006 */ 1007 CUSTOM_SUCCESS_1 = 101, 1008 /** 1009 * Elements can use values starting from 1010 * this (and higher) to define custom success 1011 * codes. 1012 */ 1013 CUSTOM_SUCCESS = 100, 1014 /** 1015 * Data passing was ok. 1016 */ 1017 OK = 0, 1018 /** 1019 * Pad is not linked. 1020 */ 1021 NOT_LINKED = -1, 1022 /** 1023 * Pad is flushing. 1024 */ 1025 FLUSHING = -2, 1026 /** 1027 * Pad is EOS. 1028 */ 1029 EOS = -3, 1030 /** 1031 * Pad is not negotiated. 1032 */ 1033 NOT_NEGOTIATED = -4, 1034 /** 1035 * Some (fatal) error occurred. Element generating 1036 * this error should post an error message with more 1037 * details. 1038 */ 1039 ERROR = -5, 1040 /** 1041 * This operation is not supported. 1042 */ 1043 NOT_SUPPORTED = -6, 1044 /** 1045 * Elements can use values starting from 1046 * this (and lower) to define custom error codes. 1047 */ 1048 CUSTOM_ERROR = -100, 1049 /** 1050 * Pre-defined custom error code (define your 1051 * custom error code to this to avoid compiler 1052 * warnings). 1053 */ 1054 CUSTOM_ERROR_1 = -101, 1055 /** 1056 * Pre-defined custom error code. 1057 */ 1058 CUSTOM_ERROR_2 = -102, 1059 } 1060 alias GstFlowReturn FlowReturn; 1061 1062 /** 1063 * Standard predefined formats 1064 */ 1065 public enum GstFormat 1066 { 1067 /** 1068 * undefined format 1069 */ 1070 UNDEFINED = 0, 1071 /** 1072 * the default format of the pad/element. This can be 1073 * samples for raw audio, frames/fields for raw video (some, but not all, 1074 * elements support this; use @GST_FORMAT_TIME if you don't have a good 1075 * reason to query for samples/frames) 1076 */ 1077 DEFAULT = 1, 1078 /** 1079 * bytes 1080 */ 1081 BYTES = 2, 1082 /** 1083 * time in nanoseconds 1084 */ 1085 TIME = 3, 1086 /** 1087 * buffers (few, if any, elements implement this as of 1088 * May 2009) 1089 */ 1090 BUFFERS = 4, 1091 /** 1092 * percentage of stream (few, if any, elements implement 1093 * this as of May 2009) 1094 */ 1095 PERCENT = 5, 1096 } 1097 alias GstFormat Format; 1098 1099 /** 1100 * The result of a #GstIteratorItemFunction. 1101 */ 1102 public enum GstIteratorItem 1103 { 1104 /** 1105 * Skip this item 1106 */ 1107 SKIP = 0, 1108 /** 1109 * Return item 1110 */ 1111 PASS = 1, 1112 /** 1113 * Stop after this item. 1114 */ 1115 END = 2, 1116 } 1117 alias GstIteratorItem IteratorItem; 1118 1119 /** 1120 * The result of gst_iterator_next(). 1121 */ 1122 public enum GstIteratorResult 1123 { 1124 /** 1125 * No more items in the iterator 1126 */ 1127 DONE = 0, 1128 /** 1129 * An item was retrieved 1130 */ 1131 OK = 1, 1132 /** 1133 * Datastructure changed while iterating 1134 */ 1135 RESYNC = 2, 1136 /** 1137 * An error happened 1138 */ 1139 ERROR = 3, 1140 } 1141 alias GstIteratorResult IteratorResult; 1142 1143 /** 1144 * Library errors are for errors from the library being used by elements 1145 * (initializing, finalizing, settings, ...) 1146 */ 1147 public enum GstLibraryError 1148 { 1149 /** 1150 * a general error which doesn't fit in any other 1151 * category. Make sure you add a custom message to the error call. 1152 */ 1153 FAILED = 1, 1154 /** 1155 * do not use this except as a placeholder for 1156 * deciding where to go while developing code. 1157 */ 1158 TOO_LAZY = 2, 1159 /** 1160 * used when the library could not be opened. 1161 */ 1162 INIT = 3, 1163 /** 1164 * used when the library could not be closed. 1165 */ 1166 SHUTDOWN = 4, 1167 /** 1168 * used when the library doesn't accept settings. 1169 */ 1170 SETTINGS = 5, 1171 /** 1172 * used when the library generated an encoding error. 1173 */ 1174 ENCODE = 6, 1175 /** 1176 * the number of library error types. 1177 */ 1178 NUM_ERRORS = 7, 1179 } 1180 alias GstLibraryError LibraryError; 1181 1182 /** 1183 * Flags used when locking miniobjects 1184 */ 1185 public enum GstLockFlags 1186 { 1187 /** 1188 * lock for read access 1189 */ 1190 READ = 1, 1191 /** 1192 * lock for write access 1193 */ 1194 WRITE = 2, 1195 /** 1196 * lock for exclusive access 1197 */ 1198 EXCLUSIVE = 4, 1199 /** 1200 * first flag that can be used for custom purposes 1201 */ 1202 LAST = 256, 1203 } 1204 alias GstLockFlags LockFlags; 1205 1206 /** 1207 * Flags used when mapping memory 1208 */ 1209 public enum GstMapFlags 1210 { 1211 /** 1212 * map for read access 1213 */ 1214 READ = 1, 1215 /** 1216 * map for write access 1217 */ 1218 WRITE = 2, 1219 /** 1220 * first flag that can be used for custom purposes 1221 */ 1222 FLAG_LAST = 65536, 1223 } 1224 alias GstMapFlags MapFlags; 1225 1226 /** 1227 * Flags for wrapped memory. 1228 */ 1229 public enum GstMemoryFlags 1230 { 1231 /** 1232 * memory is readonly. It is not allowed to map the 1233 * memory with #GST_MAP_WRITE. 1234 */ 1235 READONLY = 2, 1236 /** 1237 * memory must not be shared. Copies will have to be 1238 * made when this memory needs to be shared between buffers. 1239 */ 1240 NO_SHARE = 16, 1241 /** 1242 * the memory prefix is filled with 0 bytes 1243 */ 1244 ZERO_PREFIXED = 32, 1245 /** 1246 * the memory padding is filled with 0 bytes 1247 */ 1248 ZERO_PADDED = 64, 1249 /** 1250 * the memory is physically contiguous. (Since 1.2) 1251 */ 1252 PHYSICALLY_CONTIGUOUS = 128, 1253 /** 1254 * the memory can't be mapped via gst_memory_map() without any preconditions. (Since 1.2) 1255 */ 1256 NOT_MAPPABLE = 256, 1257 /** 1258 * first flag that can be used for custom purposes 1259 */ 1260 LAST = 1048576, 1261 } 1262 alias GstMemoryFlags MemoryFlags; 1263 1264 /** 1265 * The different message types that are available. 1266 */ 1267 public enum GstMessageType : uint 1268 { 1269 /** 1270 * an undefined message 1271 */ 1272 UNKNOWN = 0, 1273 /** 1274 * end-of-stream reached in a pipeline. The application will 1275 * only receive this message in the PLAYING state and every time it sets a 1276 * pipeline to PLAYING that is in the EOS state. The application can perform a 1277 * flushing seek in the pipeline, which will undo the EOS state again. 1278 */ 1279 EOS = 1, 1280 /** 1281 * an error occurred. When the application receives an error 1282 * message it should stop playback of the pipeline and not assume that more 1283 * data will be played. 1284 */ 1285 ERROR = 2, 1286 /** 1287 * a warning occurred. 1288 */ 1289 WARNING = 4, 1290 /** 1291 * an info message occurred 1292 */ 1293 INFO = 8, 1294 /** 1295 * a tag was found. 1296 */ 1297 TAG = 16, 1298 /** 1299 * the pipeline is buffering. When the application 1300 * receives a buffering message in the PLAYING state for a non-live pipeline it 1301 * must PAUSE the pipeline until the buffering completes, when the percentage 1302 * field in the message is 100%. For live pipelines, no action must be 1303 * performed and the buffering percentage can be used to inform the user about 1304 * the progress. 1305 */ 1306 BUFFERING = 32, 1307 /** 1308 * a state change happened 1309 */ 1310 STATE_CHANGED = 64, 1311 /** 1312 * an element changed state in a streaming thread. 1313 * This message is deprecated. 1314 */ 1315 STATE_DIRTY = 128, 1316 /** 1317 * a stepping operation finished. 1318 */ 1319 STEP_DONE = 256, 1320 /** 1321 * an element notifies its capability of providing 1322 * a clock. This message is used internally and 1323 * never forwarded to the application. 1324 */ 1325 CLOCK_PROVIDE = 512, 1326 /** 1327 * The current clock as selected by the pipeline became 1328 * unusable. The pipeline will select a new clock on 1329 * the next PLAYING state change. The application 1330 * should set the pipeline to PAUSED and back to 1331 * PLAYING when this message is received. 1332 */ 1333 CLOCK_LOST = 1024, 1334 /** 1335 * a new clock was selected in the pipeline. 1336 */ 1337 NEW_CLOCK = 2048, 1338 /** 1339 * the structure of the pipeline changed. This 1340 * message is used internally and never forwarded to the application. 1341 */ 1342 STRUCTURE_CHANGE = 4096, 1343 /** 1344 * status about a stream, emitted when it starts, 1345 * stops, errors, etc.. 1346 */ 1347 STREAM_STATUS = 8192, 1348 /** 1349 * message posted by the application, possibly 1350 * via an application-specific element. 1351 */ 1352 APPLICATION = 16384, 1353 /** 1354 * element-specific message, see the specific element's 1355 * documentation 1356 */ 1357 ELEMENT = 32768, 1358 /** 1359 * pipeline started playback of a segment. This 1360 * message is used internally and never forwarded to the application. 1361 */ 1362 SEGMENT_START = 65536, 1363 /** 1364 * pipeline completed playback of a segment. This 1365 * message is forwarded to the application after all elements that posted 1366 * @GST_MESSAGE_SEGMENT_START posted a GST_MESSAGE_SEGMENT_DONE message. 1367 */ 1368 SEGMENT_DONE = 131072, 1369 /** 1370 * The duration of a pipeline changed. The 1371 * application can get the new duration with a duration query. 1372 */ 1373 DURATION_CHANGED = 262144, 1374 /** 1375 * Posted by elements when their latency changes. The 1376 * application should recalculate and distribute a new latency. 1377 */ 1378 LATENCY = 524288, 1379 /** 1380 * Posted by elements when they start an ASYNC 1381 * #GstStateChange. This message is not forwarded to the application but is used 1382 * internally. 1383 */ 1384 ASYNC_START = 1048576, 1385 /** 1386 * Posted by elements when they complete an ASYNC 1387 * #GstStateChange. The application will only receive this message from the toplevel 1388 * pipeline. 1389 */ 1390 ASYNC_DONE = 2097152, 1391 /** 1392 * Posted by elements when they want the pipeline to 1393 * change state. This message is a suggestion to the application which can 1394 * decide to perform the state change on (part of) the pipeline. 1395 */ 1396 REQUEST_STATE = 4194304, 1397 /** 1398 * A stepping operation was started. 1399 */ 1400 STEP_START = 8388608, 1401 /** 1402 * A buffer was dropped or an element changed its processing 1403 * strategy for Quality of Service reasons. 1404 */ 1405 QOS = 16777216, 1406 /** 1407 * A progress message. 1408 */ 1409 PROGRESS = 33554432, 1410 /** 1411 * A new table of contents (TOC) was found or previously found TOC 1412 * was updated. 1413 */ 1414 TOC = 67108864, 1415 /** 1416 * Message to request resetting the pipeline's 1417 * running time from the pipeline. This is an internal message which 1418 * applications will likely never receive. 1419 */ 1420 RESET_TIME = 134217728, 1421 /** 1422 * Message indicating start of a new stream. Useful 1423 * e.g. when using playbin in gapless playback mode, to get notified when 1424 * the next title actually starts playing (which will be some time after 1425 * the URI for the next title has been set). 1426 */ 1427 STREAM_START = 268435456, 1428 /** 1429 * Message indicating that an element wants a specific context (Since 1.2) 1430 */ 1431 NEED_CONTEXT = 536870912, 1432 /** 1433 * Message indicating that an element created a context (Since 1.2) 1434 */ 1435 HAVE_CONTEXT = 1073741824, 1436 /** 1437 * Message is an extended message type (see below). 1438 * These extended message IDs can't be used directly with mask-based API 1439 * like gst_bus_poll() or gst_bus_timed_pop_filtered(), but you can still 1440 * filter for GST_MESSAGE_EXTENDED and then check the result for the 1441 * specific type. (Since 1.4) 1442 */ 1443 EXTENDED = 2147483648, 1444 /** 1445 * Message indicating a #GstDevice was added to 1446 * a #GstDeviceProvider (Since 1.4) 1447 */ 1448 DEVICE_ADDED = 2147483649, 1449 /** 1450 * Message indicating a #GstDevice was removed 1451 * from a #GstDeviceProvider (Since 1.4) 1452 */ 1453 DEVICE_REMOVED = 2147483650, 1454 /** 1455 * Message indicating a #GObject property has 1456 * changed (Since 1.10) 1457 */ 1458 PROPERTY_NOTIFY = 2147483651, 1459 /** 1460 * Message indicating a new #GstStreamCollection 1461 * is available (Since 1.10) 1462 */ 1463 STREAM_COLLECTION = 2147483652, 1464 /** 1465 * Message indicating the active selection of 1466 * #GstStreams has changed (Since 1.10) 1467 */ 1468 STREAMS_SELECTED = 2147483653, 1469 /** 1470 * Message indicating to request the application to 1471 * try to play the given URL(s). Useful if for example a HTTP 302/303 1472 * response is received with a non-HTTP URL inside. (Since 1.10) 1473 */ 1474 REDIRECT = 2147483654, 1475 /** 1476 * mask for all of the above messages. 1477 */ 1478 ANY = 4294967295, 1479 } 1480 alias GstMessageType MessageType; 1481 1482 /** 1483 * Extra metadata flags. 1484 */ 1485 public enum GstMetaFlags 1486 { 1487 /** 1488 * no flags 1489 */ 1490 NONE = 0, 1491 /** 1492 * metadata should not be modified 1493 */ 1494 READONLY = 1, 1495 /** 1496 * metadata is managed by a bufferpool 1497 */ 1498 POOLED = 2, 1499 /** 1500 * metadata should not be removed 1501 */ 1502 LOCKED = 4, 1503 /** 1504 * additional flags can be added starting from this flag. 1505 */ 1506 LAST = 65536, 1507 } 1508 alias GstMetaFlags MetaFlags; 1509 1510 /** 1511 * Flags for the mini object 1512 */ 1513 public enum GstMiniObjectFlags 1514 { 1515 /** 1516 * the object can be locked and unlocked with 1517 * gst_mini_object_lock() and gst_mini_object_unlock(). 1518 */ 1519 LOCKABLE = 1, 1520 /** 1521 * the object is permanently locked in 1522 * READONLY mode. Only read locks can be performed on the object. 1523 */ 1524 LOCK_READONLY = 2, 1525 /** 1526 * the object is expected to stay alive 1527 * even after gst_deinit() has been called and so should be ignored by leak 1528 * detection tools. (Since 1.10) 1529 */ 1530 MAY_BE_LEAKED = 4, 1531 /** 1532 * first flag that can be used by subclasses. 1533 */ 1534 LAST = 16, 1535 } 1536 alias GstMiniObjectFlags MiniObjectFlags; 1537 1538 /** 1539 * The standard flags that an gstobject may have. 1540 */ 1541 public enum GstObjectFlags 1542 { 1543 /** 1544 * the object is expected to stay alive even 1545 * after gst_deinit() has been called and so should be ignored by leak 1546 * detection tools. (Since 1.10) 1547 */ 1548 MAY_BE_LEAKED = 1, 1549 /** 1550 * subclasses can add additional flags starting from this flag 1551 */ 1552 LAST = 16, 1553 } 1554 alias GstObjectFlags ObjectFlags; 1555 1556 /** 1557 * The direction of a pad. 1558 */ 1559 public enum GstPadDirection 1560 { 1561 /** 1562 * direction is unknown. 1563 */ 1564 UNKNOWN = 0, 1565 /** 1566 * the pad is a source pad. 1567 */ 1568 SRC = 1, 1569 /** 1570 * the pad is a sink pad. 1571 */ 1572 SINK = 2, 1573 } 1574 alias GstPadDirection PadDirection; 1575 1576 /** 1577 * Pad state flags 1578 */ 1579 public enum GstPadFlags 1580 { 1581 /** 1582 * is dataflow on a pad blocked 1583 */ 1584 BLOCKED = 16, 1585 /** 1586 * is pad flushing 1587 */ 1588 FLUSHING = 32, 1589 /** 1590 * is pad in EOS state 1591 */ 1592 EOS = 64, 1593 /** 1594 * is pad currently blocking on a buffer or event 1595 */ 1596 BLOCKING = 128, 1597 /** 1598 * ensure that there is a parent object before calling 1599 * into the pad callbacks. 1600 */ 1601 NEED_PARENT = 256, 1602 /** 1603 * the pad should be reconfigured/renegotiated. 1604 * The flag has to be unset manually after 1605 * reconfiguration happened. 1606 */ 1607 NEED_RECONFIGURE = 512, 1608 /** 1609 * the pad has pending events 1610 */ 1611 PENDING_EVENTS = 1024, 1612 /** 1613 * the pad is using fixed caps. This means that 1614 * once the caps are set on the pad, the default caps query function 1615 * will only return those caps. 1616 */ 1617 FIXED_CAPS = 2048, 1618 /** 1619 * the default event and query handler will forward 1620 * all events and queries to the internally linked pads 1621 * instead of discarding them. 1622 */ 1623 PROXY_CAPS = 4096, 1624 /** 1625 * the default query handler will forward 1626 * allocation queries to the internally linked pads 1627 * instead of discarding them. 1628 */ 1629 PROXY_ALLOCATION = 8192, 1630 /** 1631 * the default query handler will forward 1632 * scheduling queries to the internally linked pads 1633 * instead of discarding them. 1634 */ 1635 PROXY_SCHEDULING = 16384, 1636 /** 1637 * the default accept-caps handler will check 1638 * it the caps intersect the query-caps result instead 1639 * of checking for a subset. This is interesting for 1640 * parsers that can accept incompletely specified caps. 1641 */ 1642 ACCEPT_INTERSECT = 32768, 1643 /** 1644 * the default accept-caps handler will use 1645 * the template pad caps instead of query caps to 1646 * compare with the accept caps. Use this in combination 1647 * with %GST_PAD_FLAG_ACCEPT_INTERSECT. (Since 1.6) 1648 */ 1649 ACCEPT_TEMPLATE = 65536, 1650 /** 1651 * offset to define more flags 1652 */ 1653 LAST = 1048576, 1654 } 1655 alias GstPadFlags PadFlags; 1656 1657 /** 1658 * The amount of checking to be done when linking pads. @GST_PAD_LINK_CHECK_CAPS 1659 * and @GST_PAD_LINK_CHECK_TEMPLATE_CAPS are mutually exclusive. If both are 1660 * specified, expensive but safe @GST_PAD_LINK_CHECK_CAPS are performed. 1661 * 1662 * > Only disable some of the checks if you are 100% certain you know the link 1663 * > will not fail because of hierarchy/caps compatibility failures. If uncertain, 1664 * > use the default checks (%GST_PAD_LINK_CHECK_DEFAULT) or the regular methods 1665 * > for linking the pads. 1666 */ 1667 public enum GstPadLinkCheck 1668 { 1669 /** 1670 * Don't check hierarchy or caps compatibility. 1671 */ 1672 NOTHING = 0, 1673 /** 1674 * Check the pads have same parents/grandparents. 1675 * Could be omitted if it is already known that the two elements that own the 1676 * pads are in the same bin. 1677 */ 1678 HIERARCHY = 1, 1679 /** 1680 * Check if the pads are compatible by using 1681 * their template caps. This is much faster than @GST_PAD_LINK_CHECK_CAPS, but 1682 * would be unsafe e.g. if one pad has %GST_CAPS_ANY. 1683 */ 1684 TEMPLATE_CAPS = 2, 1685 /** 1686 * Check if the pads are compatible by comparing the 1687 * caps returned by gst_pad_query_caps(). 1688 */ 1689 CAPS = 4, 1690 /** 1691 * Disables pushing a reconfigure event when pads are 1692 * linked. 1693 */ 1694 NO_RECONFIGURE = 8, 1695 /** 1696 * The default checks done when linking 1697 * pads (i.e. the ones used by gst_pad_link()). 1698 */ 1699 DEFAULT = 5, 1700 } 1701 alias GstPadLinkCheck PadLinkCheck; 1702 1703 /** 1704 * Result values from gst_pad_link and friends. 1705 */ 1706 public enum GstPadLinkReturn 1707 { 1708 /** 1709 * link succeeded 1710 */ 1711 OK = 0, 1712 /** 1713 * pads have no common grandparent 1714 */ 1715 WRONG_HIERARCHY = -1, 1716 /** 1717 * pad was already linked 1718 */ 1719 WAS_LINKED = -2, 1720 /** 1721 * pads have wrong direction 1722 */ 1723 WRONG_DIRECTION = -3, 1724 /** 1725 * pads do not have common format 1726 */ 1727 NOFORMAT = -4, 1728 /** 1729 * pads cannot cooperate in scheduling 1730 */ 1731 NOSCHED = -5, 1732 /** 1733 * refused for some reason 1734 */ 1735 REFUSED = -6, 1736 } 1737 alias GstPadLinkReturn PadLinkReturn; 1738 1739 /** 1740 * The status of a GstPad. After activating a pad, which usually happens when the 1741 * parent element goes from READY to PAUSED, the GstPadMode defines if the 1742 * pad operates in push or pull mode. 1743 */ 1744 public enum GstPadMode 1745 { 1746 /** 1747 * Pad will not handle dataflow 1748 */ 1749 NONE = 0, 1750 /** 1751 * Pad handles dataflow in downstream push mode 1752 */ 1753 PUSH = 1, 1754 /** 1755 * Pad handles dataflow in upstream pull mode 1756 */ 1757 PULL = 2, 1758 } 1759 alias GstPadMode PadMode; 1760 1761 /** 1762 * Indicates when this pad will become available. 1763 */ 1764 public enum GstPadPresence 1765 { 1766 /** 1767 * the pad is always available 1768 */ 1769 ALWAYS = 0, 1770 /** 1771 * the pad will become available depending on the media stream 1772 */ 1773 SOMETIMES = 1, 1774 /** 1775 * the pad is only available on request with 1776 * gst_element_request_pad(). 1777 */ 1778 REQUEST = 2, 1779 } 1780 alias GstPadPresence PadPresence; 1781 1782 /** 1783 * Different return values for the #GstPadProbeCallback. 1784 */ 1785 public enum GstPadProbeReturn 1786 { 1787 /** 1788 * drop data in data probes. For push mode this means that 1789 * the data item is not sent downstream. For pull mode, it means that 1790 * the data item is not passed upstream. In both cases, no other probes 1791 * are called for this item and %GST_FLOW_OK or %TRUE is returned to the 1792 * caller. 1793 */ 1794 DROP = 0, 1795 /** 1796 * normal probe return value. This leaves the probe in 1797 * place, and defers decisions about dropping or passing data to other 1798 * probes, if any. If there are no other probes, the default behaviour 1799 * for the probe type applies ('block' for blocking probes, 1800 * and 'pass' for non-blocking probes). 1801 */ 1802 OK = 1, 1803 /** 1804 * remove this probe. 1805 */ 1806 REMOVE = 2, 1807 /** 1808 * pass the data item in the block probe and block on the 1809 * next item. 1810 */ 1811 PASS = 3, 1812 /** 1813 * Data has been handled in the probe and will not be 1814 * forwarded further. For events and buffers this is the same behaviour as 1815 * %GST_PAD_PROBE_DROP (except that in this case you need to unref the buffer 1816 * or event yourself). For queries it will also return %TRUE to the caller. 1817 * The probe can also modify the #GstFlowReturn value by using the 1818 * #GST_PAD_PROBE_INFO_FLOW_RETURN() accessor. 1819 * Note that the resulting query must contain valid entries. 1820 * Since: 1.6 1821 */ 1822 HANDLED = 4, 1823 } 1824 alias GstPadProbeReturn PadProbeReturn; 1825 1826 /** 1827 * The different probing types that can occur. When either one of 1828 * @GST_PAD_PROBE_TYPE_IDLE or @GST_PAD_PROBE_TYPE_BLOCK is used, the probe will be a 1829 * blocking probe. 1830 */ 1831 public enum GstPadProbeType 1832 { 1833 /** 1834 * invalid probe type 1835 */ 1836 INVALID = 0, 1837 /** 1838 * probe idle pads and block while the callback is called 1839 */ 1840 IDLE = 1, 1841 /** 1842 * probe and block pads 1843 */ 1844 BLOCK = 2, 1845 /** 1846 * probe buffers 1847 */ 1848 BUFFER = 16, 1849 /** 1850 * probe buffer lists 1851 */ 1852 BUFFER_LIST = 32, 1853 /** 1854 * probe downstream events 1855 */ 1856 EVENT_DOWNSTREAM = 64, 1857 /** 1858 * probe upstream events 1859 */ 1860 EVENT_UPSTREAM = 128, 1861 /** 1862 * probe flush events. This probe has to be 1863 * explicitly enabled and is not included in the 1864 * @@GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM or 1865 * @@GST_PAD_PROBE_TYPE_EVENT_UPSTREAM probe types. 1866 */ 1867 EVENT_FLUSH = 256, 1868 /** 1869 * probe downstream queries 1870 */ 1871 QUERY_DOWNSTREAM = 512, 1872 /** 1873 * probe upstream queries 1874 */ 1875 QUERY_UPSTREAM = 1024, 1876 /** 1877 * probe push 1878 */ 1879 PUSH = 4096, 1880 /** 1881 * probe pull 1882 */ 1883 PULL = 8192, 1884 /** 1885 * probe and block at the next opportunity, at data flow or when idle 1886 */ 1887 BLOCKING = 3, 1888 /** 1889 * probe downstream data (buffers, buffer lists, and events) 1890 */ 1891 DATA_DOWNSTREAM = 112, 1892 /** 1893 * probe upstream data (events) 1894 */ 1895 DATA_UPSTREAM = 128, 1896 /** 1897 * probe upstream and downstream data (buffers, buffer lists, and events) 1898 */ 1899 DATA_BOTH = 240, 1900 /** 1901 * probe and block downstream data (buffers, buffer lists, and events) 1902 */ 1903 BLOCK_DOWNSTREAM = 114, 1904 /** 1905 * probe and block upstream data (events) 1906 */ 1907 BLOCK_UPSTREAM = 130, 1908 /** 1909 * probe upstream and downstream events 1910 */ 1911 EVENT_BOTH = 192, 1912 /** 1913 * probe upstream and downstream queries 1914 */ 1915 QUERY_BOTH = 1536, 1916 /** 1917 * probe upstream events and queries and downstream buffers, buffer lists, events and queries 1918 */ 1919 ALL_BOTH = 1776, 1920 /** 1921 * probe push and pull 1922 */ 1923 SCHEDULING = 12288, 1924 } 1925 alias GstPadProbeType PadProbeType; 1926 1927 /** 1928 * Flags for the padtemplate 1929 */ 1930 public enum GstPadTemplateFlags 1931 { 1932 /** 1933 * first flag that can be used by subclasses. 1934 */ 1935 LAST = 256, 1936 } 1937 alias GstPadTemplateFlags PadTemplateFlags; 1938 1939 /** 1940 * The different parsing errors that can occur. 1941 */ 1942 public enum GstParseError 1943 { 1944 /** 1945 * A syntax error occurred. 1946 */ 1947 SYNTAX = 0, 1948 /** 1949 * The description contained an unknown element 1950 */ 1951 NO_SUCH_ELEMENT = 1, 1952 /** 1953 * An element did not have a specified property 1954 */ 1955 NO_SUCH_PROPERTY = 2, 1956 /** 1957 * There was an error linking two pads. 1958 */ 1959 LINK = 3, 1960 /** 1961 * There was an error setting a property 1962 */ 1963 COULD_NOT_SET_PROPERTY = 4, 1964 /** 1965 * An empty bin was specified. 1966 */ 1967 EMPTY_BIN = 5, 1968 /** 1969 * An empty description was specified 1970 */ 1971 EMPTY = 6, 1972 /** 1973 * A delayed link did not get resolved. 1974 */ 1975 DELAYED_LINK = 7, 1976 } 1977 alias GstParseError ParseError; 1978 1979 /** 1980 * Parsing options. 1981 */ 1982 public enum GstParseFlags 1983 { 1984 /** 1985 * Do not use any special parsing options. 1986 */ 1987 NONE = 0, 1988 /** 1989 * Always return %NULL when an error occurs 1990 * (default behaviour is to return partially constructed bins or elements 1991 * in some cases) 1992 */ 1993 FATAL_ERRORS = 1, 1994 /** 1995 * If a bin only has a single element, 1996 * just return the element. 1997 */ 1998 NO_SINGLE_ELEMENT_BINS = 2, 1999 /** 2000 * If more than one toplevel element is described 2001 * by the pipeline description string, put them in a #GstBin instead of a 2002 * #GstPipeline. (Since 1.10) 2003 */ 2004 PLACE_IN_BIN = 4, 2005 } 2006 alias GstParseFlags ParseFlags; 2007 2008 /** 2009 * Pipeline flags 2010 */ 2011 public enum GstPipelineFlags 2012 { 2013 /** 2014 * this pipeline works with a fixed clock 2015 */ 2016 FIXED_CLOCK = 524288, 2017 /** 2018 * offset to define more flags 2019 */ 2020 LAST = 8388608, 2021 } 2022 alias GstPipelineFlags PipelineFlags; 2023 2024 /** 2025 * Flags used in connection with gst_plugin_add_dependency(). 2026 */ 2027 public enum GstPluginDependencyFlags 2028 { 2029 /** 2030 * no special flags 2031 */ 2032 NONE = 0, 2033 /** 2034 * recurse into subdirectories 2035 */ 2036 RECURSE = 1, 2037 /** 2038 * use paths 2039 * argument only if none of the environment variables is set 2040 */ 2041 PATHS_ARE_DEFAULT_ONLY = 2, 2042 /** 2043 * interpret 2044 * filename argument as filter suffix and check all matching files in 2045 * the directory 2046 */ 2047 FILE_NAME_IS_SUFFIX = 4, 2048 /** 2049 * interpret 2050 * filename argument as filter prefix and check all matching files in 2051 * the directory. Since 1.8. 2052 */ 2053 FILE_NAME_IS_PREFIX = 8, 2054 /** 2055 * interpret 2056 * non-absolute paths as relative to the main executable directory. Since 2057 * 1.14. 2058 */ 2059 PATHS_ARE_RELATIVE_TO_EXE = 16, 2060 } 2061 alias GstPluginDependencyFlags PluginDependencyFlags; 2062 2063 /** 2064 * The plugin loading errors 2065 */ 2066 public enum GstPluginError 2067 { 2068 /** 2069 * The plugin could not be loaded 2070 */ 2071 MODULE = 0, 2072 /** 2073 * The plugin has unresolved dependencies 2074 */ 2075 DEPENDENCIES = 1, 2076 /** 2077 * The plugin has already be loaded from a different file 2078 */ 2079 NAME_MISMATCH = 2, 2080 } 2081 alias GstPluginError PluginError; 2082 2083 /** 2084 * The plugin loading state 2085 */ 2086 public enum GstPluginFlags 2087 { 2088 /** 2089 * Temporarily loaded plugins 2090 */ 2091 CACHED = 16, 2092 /** 2093 * The plugin won't be scanned (again) 2094 */ 2095 BLACKLISTED = 32, 2096 } 2097 alias GstPluginFlags PluginFlags; 2098 2099 /** 2100 * The type of a %GST_MESSAGE_PROGRESS. The progress messages inform the 2101 * application of the status of asynchronous tasks. 2102 */ 2103 public enum GstProgressType 2104 { 2105 /** 2106 * A new task started. 2107 */ 2108 START = 0, 2109 /** 2110 * A task completed and a new one continues. 2111 */ 2112 CONTINUE = 1, 2113 /** 2114 * A task completed. 2115 */ 2116 COMPLETE = 2, 2117 /** 2118 * A task was canceled. 2119 */ 2120 CANCELED = 3, 2121 /** 2122 * A task caused an error. An error message is also 2123 * posted on the bus. 2124 */ 2125 ERROR = 4, 2126 } 2127 alias GstProgressType ProgressType; 2128 2129 /** 2130 * The result of a #GstPromise 2131 * 2132 * Since: 1.14 2133 */ 2134 public enum GstPromiseResult 2135 { 2136 /** 2137 * Initial state. Waiting for transition to any 2138 * other state. 2139 */ 2140 PENDING = 0, 2141 /** 2142 * Interrupted by the consumer as it doesn't 2143 * want the value anymore. 2144 */ 2145 INTERRUPTED = 1, 2146 /** 2147 * A producer marked a reply 2148 */ 2149 REPLIED = 2, 2150 /** 2151 * The promise expired (the carrying object 2152 * lost all refs) and the promise will never be fulfilled. 2153 */ 2154 EXPIRED = 3, 2155 } 2156 alias GstPromiseResult PromiseResult; 2157 2158 /** 2159 * The different types of QoS events that can be given to the 2160 * gst_event_new_qos() method. 2161 */ 2162 public enum GstQOSType 2163 { 2164 /** 2165 * The QoS event type that is produced when upstream 2166 * elements are producing data too quickly and the element can't keep up 2167 * processing the data. Upstream should reduce their production rate. This 2168 * type is also used when buffers arrive early or in time. 2169 */ 2170 OVERFLOW = 0, 2171 /** 2172 * The QoS event type that is produced when upstream 2173 * elements are producing data too slowly and need to speed up their 2174 * production rate. 2175 */ 2176 UNDERFLOW = 1, 2177 /** 2178 * The QoS event type that is produced when the 2179 * application enabled throttling to limit the data rate. 2180 */ 2181 THROTTLE = 2, 2182 } 2183 alias GstQOSType QOSType; 2184 2185 /** 2186 * Standard predefined Query types 2187 */ 2188 public enum GstQueryType 2189 { 2190 /** 2191 * unknown query type 2192 */ 2193 UNKNOWN = 0, 2194 /** 2195 * current position in stream 2196 */ 2197 POSITION = 2563, 2198 /** 2199 * total duration of the stream 2200 */ 2201 DURATION = 5123, 2202 /** 2203 * latency of stream 2204 */ 2205 LATENCY = 7683, 2206 /** 2207 * current jitter of stream 2208 */ 2209 JITTER = 10243, 2210 /** 2211 * current rate of the stream 2212 */ 2213 RATE = 12803, 2214 /** 2215 * seeking capabilities 2216 */ 2217 SEEKING = 15363, 2218 /** 2219 * segment start/stop positions 2220 */ 2221 SEGMENT = 17923, 2222 /** 2223 * convert values between formats 2224 */ 2225 CONVERT = 20483, 2226 /** 2227 * query supported formats for convert 2228 */ 2229 FORMATS = 23043, 2230 /** 2231 * query available media for efficient seeking. 2232 */ 2233 BUFFERING = 28163, 2234 /** 2235 * a custom application or element defined query. 2236 */ 2237 CUSTOM = 30723, 2238 /** 2239 * query the URI of the source or sink. 2240 */ 2241 URI = 33283, 2242 /** 2243 * the buffer allocation properties 2244 */ 2245 ALLOCATION = 35846, 2246 /** 2247 * the scheduling properties 2248 */ 2249 SCHEDULING = 38401, 2250 /** 2251 * the accept caps query 2252 */ 2253 ACCEPT_CAPS = 40963, 2254 /** 2255 * the caps query 2256 */ 2257 CAPS = 43523, 2258 /** 2259 * wait till all serialized data is consumed downstream 2260 */ 2261 DRAIN = 46086, 2262 /** 2263 * query the pipeline-local context from 2264 * downstream or upstream (since 1.2) 2265 */ 2266 CONTEXT = 48643, 2267 } 2268 alias GstQueryType QueryType; 2269 2270 /** 2271 * #GstQueryTypeFlags indicate the aspects of the different #GstQueryType 2272 * values. You can get the type flags of a #GstQueryType with the 2273 * gst_query_type_get_flags() function. 2274 */ 2275 public enum GstQueryTypeFlags 2276 { 2277 /** 2278 * Set if the query can travel upstream. 2279 */ 2280 UPSTREAM = 1, 2281 /** 2282 * Set if the query can travel downstream. 2283 */ 2284 DOWNSTREAM = 2, 2285 /** 2286 * Set if the query should be serialized with data 2287 * flow. 2288 */ 2289 SERIALIZED = 4, 2290 } 2291 alias GstQueryTypeFlags QueryTypeFlags; 2292 2293 /** 2294 * Element priority ranks. Defines the order in which the autoplugger (or 2295 * similar rank-picking mechanisms, such as e.g. gst_element_make_from_uri()) 2296 * will choose this element over an alternative one with the same function. 2297 * 2298 * These constants serve as a rough guidance for defining the rank of a 2299 * #GstPluginFeature. Any value is valid, including values bigger than 2300 * @GST_RANK_PRIMARY. 2301 */ 2302 public enum GstRank 2303 { 2304 /** 2305 * will be chosen last or not at all 2306 */ 2307 NONE = 0, 2308 /** 2309 * unlikely to be chosen 2310 */ 2311 MARGINAL = 64, 2312 /** 2313 * likely to be chosen 2314 */ 2315 SECONDARY = 128, 2316 /** 2317 * will be chosen first 2318 */ 2319 PRIMARY = 256, 2320 } 2321 alias GstRank Rank; 2322 2323 /** 2324 * Resource errors are for any resource used by an element: 2325 * memory, files, network connections, process space, ... 2326 * They're typically used by source and sink elements. 2327 */ 2328 public enum GstResourceError 2329 { 2330 /** 2331 * a general error which doesn't fit in any other 2332 * category. Make sure you add a custom message to the error call. 2333 */ 2334 FAILED = 1, 2335 /** 2336 * do not use this except as a placeholder for 2337 * deciding where to go while developing code. 2338 */ 2339 TOO_LAZY = 2, 2340 /** 2341 * used when the resource could not be found. 2342 */ 2343 NOT_FOUND = 3, 2344 /** 2345 * used when resource is busy. 2346 */ 2347 BUSY = 4, 2348 /** 2349 * used when resource fails to open for reading. 2350 */ 2351 OPEN_READ = 5, 2352 /** 2353 * used when resource fails to open for writing. 2354 */ 2355 OPEN_WRITE = 6, 2356 /** 2357 * used when resource cannot be opened for 2358 * both reading and writing, or either (but unspecified which). 2359 */ 2360 OPEN_READ_WRITE = 7, 2361 /** 2362 * used when the resource can't be closed. 2363 */ 2364 CLOSE = 8, 2365 /** 2366 * used when the resource can't be read from. 2367 */ 2368 READ = 9, 2369 /** 2370 * used when the resource can't be written to. 2371 */ 2372 WRITE = 10, 2373 /** 2374 * used when a seek on the resource fails. 2375 */ 2376 SEEK = 11, 2377 /** 2378 * used when a synchronize on the resource fails. 2379 */ 2380 SYNC = 12, 2381 /** 2382 * used when settings can't be manipulated on. 2383 */ 2384 SETTINGS = 13, 2385 /** 2386 * used when the resource has no space left. 2387 */ 2388 NO_SPACE_LEFT = 14, 2389 /** 2390 * used when the resource can't be opened 2391 * due to missing authorization. 2392 * (Since 1.2.4) 2393 */ 2394 NOT_AUTHORIZED = 15, 2395 /** 2396 * the number of resource error types. 2397 */ 2398 NUM_ERRORS = 16, 2399 } 2400 alias GstResourceError ResourceError; 2401 2402 /** 2403 * The different scheduling flags. 2404 */ 2405 public enum GstSchedulingFlags 2406 { 2407 /** 2408 * if seeking is possible 2409 */ 2410 SEEKABLE = 1, 2411 /** 2412 * if sequential access is recommended 2413 */ 2414 SEQUENTIAL = 2, 2415 /** 2416 * if bandwidth is limited and buffering possible (since 1.2) 2417 */ 2418 BANDWIDTH_LIMITED = 4, 2419 } 2420 alias GstSchedulingFlags SchedulingFlags; 2421 2422 /** 2423 * The different search modes. 2424 */ 2425 public enum GstSearchMode 2426 { 2427 /** 2428 * Only search for exact matches. 2429 */ 2430 EXACT = 0, 2431 /** 2432 * Search for an exact match or the element just before. 2433 */ 2434 BEFORE = 1, 2435 /** 2436 * Search for an exact match or the element just after. 2437 */ 2438 AFTER = 2, 2439 } 2440 alias GstSearchMode SearchMode; 2441 2442 /** 2443 * Flags to be used with gst_element_seek() or gst_event_new_seek(). All flags 2444 * can be used together. 2445 * 2446 * A non flushing seek might take some time to perform as the currently 2447 * playing data in the pipeline will not be cleared. 2448 * 2449 * An accurate seek might be slower for formats that don't have any indexes 2450 * or timestamp markers in the stream. Specifying this flag might require a 2451 * complete scan of the file in those cases. 2452 * 2453 * When performing a segment seek: after the playback of the segment completes, 2454 * no EOS will be emitted by the element that performed the seek, but a 2455 * %GST_MESSAGE_SEGMENT_DONE message will be posted on the bus by the element. 2456 * When this message is posted, it is possible to send a new seek event to 2457 * continue playback. With this seek method it is possible to perform seamless 2458 * looping or simple linear editing. 2459 * 2460 * When doing fast forward (rate > 1.0) or fast reverse (rate < -1.0) trickmode 2461 * playback, the %GST_SEEK_FLAG_TRICKMODE flag can be used to instruct decoders 2462 * and demuxers to adjust the playback rate by skipping frames. This can improve 2463 * performance and decrease CPU usage because not all frames need to be decoded. 2464 * 2465 * Beyond that, the %GST_SEEK_FLAG_TRICKMODE_KEY_UNITS flag can be used to 2466 * request that decoders skip all frames except key units, and 2467 * %GST_SEEK_FLAG_TRICKMODE_NO_AUDIO flags can be used to request that audio 2468 * decoders do no decoding at all, and simple output silence. 2469 * 2470 * The %GST_SEEK_FLAG_SNAP_BEFORE flag can be used to snap to the previous 2471 * relevant location, and the %GST_SEEK_FLAG_SNAP_AFTER flag can be used to 2472 * select the next relevant location. If %GST_SEEK_FLAG_KEY_UNIT is specified, 2473 * the relevant location is a keyframe. If both flags are specified, the nearest 2474 * of these locations will be selected. If none are specified, the implementation is 2475 * free to select whichever it wants. 2476 * 2477 * The before and after here are in running time, so when playing backwards, 2478 * the next location refers to the one that will played in next, and not the 2479 * one that is located after in the actual source stream. 2480 * 2481 * Also see part-seeking.txt in the GStreamer design documentation for more 2482 * details on the meaning of these flags and the behaviour expected of 2483 * elements that handle them. 2484 */ 2485 public enum GstSeekFlags 2486 { 2487 /** 2488 * no flag 2489 */ 2490 NONE = 0, 2491 /** 2492 * flush pipeline 2493 */ 2494 FLUSH = 1, 2495 /** 2496 * accurate position is requested, this might 2497 * be considerably slower for some formats. 2498 */ 2499 ACCURATE = 2, 2500 /** 2501 * seek to the nearest keyframe. This might be 2502 * faster but less accurate. 2503 */ 2504 KEY_UNIT = 4, 2505 /** 2506 * perform a segment seek. 2507 */ 2508 SEGMENT = 8, 2509 /** 2510 * when doing fast forward or fast reverse playback, allow 2511 * elements to skip frames instead of generating all 2512 * frames. (Since 1.6) 2513 */ 2514 TRICKMODE = 16, 2515 /** 2516 * Deprecated backward compatibility flag, replaced 2517 * by %GST_SEEK_FLAG_TRICKMODE 2518 */ 2519 SKIP = 16, 2520 /** 2521 * go to a location before the requested position, 2522 * if %GST_SEEK_FLAG_KEY_UNIT this means the keyframe at or before 2523 * the requested position the one at or before the seek target. 2524 */ 2525 SNAP_BEFORE = 32, 2526 /** 2527 * go to a location after the requested position, 2528 * if %GST_SEEK_FLAG_KEY_UNIT this means the keyframe at of after the 2529 * requested position. 2530 */ 2531 SNAP_AFTER = 64, 2532 /** 2533 * go to a position near the requested position, 2534 * if %GST_SEEK_FLAG_KEY_UNIT this means the keyframe closest 2535 * to the requested position, if both keyframes are at an equal 2536 * distance, behaves like %GST_SEEK_FLAG_SNAP_BEFORE. 2537 */ 2538 SNAP_NEAREST = 96, 2539 /** 2540 * when doing fast forward or fast reverse 2541 * playback, request that elements only decode keyframes 2542 * and skip all other content, for formats that have 2543 * keyframes. (Since 1.6) 2544 */ 2545 TRICKMODE_KEY_UNITS = 128, 2546 /** 2547 * when doing fast forward or fast reverse 2548 * playback, request that audio decoder elements skip 2549 * decoding and output only gap events or silence. (Since 1.6) 2550 */ 2551 TRICKMODE_NO_AUDIO = 256, 2552 } 2553 alias GstSeekFlags SeekFlags; 2554 2555 /** 2556 * The different types of seek events. When constructing a seek event with 2557 * gst_event_new_seek() or when doing gst_segment_do_seek (). 2558 */ 2559 public enum GstSeekType 2560 { 2561 /** 2562 * no change in position is required 2563 */ 2564 NONE = 0, 2565 /** 2566 * absolute position is requested 2567 */ 2568 SET = 1, 2569 /** 2570 * relative position to duration is requested 2571 */ 2572 END = 2, 2573 } 2574 alias GstSeekType SeekType; 2575 2576 /** 2577 * Flags for the GstSegment structure. Currently mapped to the corresponding 2578 * values of the seek flags. 2579 */ 2580 public enum GstSegmentFlags 2581 { 2582 /** 2583 * no flags 2584 */ 2585 NONE = 0, 2586 /** 2587 * reset the pipeline running_time to the segment 2588 * running_time 2589 */ 2590 RESET = 1, 2591 /** 2592 * perform skip playback (Since 1.6) 2593 */ 2594 TRICKMODE = 16, 2595 /** 2596 * Deprecated backward compatibility flag, replaced 2597 * by @GST_SEGMENT_FLAG_TRICKMODE 2598 */ 2599 SKIP = 16, 2600 /** 2601 * send SEGMENT_DONE instead of EOS 2602 */ 2603 SEGMENT = 8, 2604 /** 2605 * Decode only keyframes, where 2606 * possible (Since 1.6) 2607 */ 2608 TRICKMODE_KEY_UNITS = 128, 2609 /** 2610 * Do not decode any audio, where 2611 * possible (Since 1.6) 2612 */ 2613 TRICKMODE_NO_AUDIO = 256, 2614 } 2615 alias GstSegmentFlags SegmentFlags; 2616 2617 public enum GstStackTraceFlags 2618 { 2619 /** 2620 * Try to retrieve as much information as 2621 * possible when getting the stack trace 2622 */ 2623 FULL = 1, 2624 } 2625 alias GstStackTraceFlags StackTraceFlags; 2626 2627 /** 2628 * The possible states an element can be in. States can be changed using 2629 * gst_element_set_state() and checked using gst_element_get_state(). 2630 */ 2631 public enum GstState 2632 { 2633 /** 2634 * no pending state. 2635 */ 2636 VOID_PENDING = 0, 2637 /** 2638 * the NULL state or initial state of an element. 2639 */ 2640 NULL = 1, 2641 /** 2642 * the element is ready to go to PAUSED. 2643 */ 2644 READY = 2, 2645 /** 2646 * the element is PAUSED, it is ready to accept and 2647 * process data. Sink elements however only accept one 2648 * buffer and then block. 2649 */ 2650 PAUSED = 3, 2651 /** 2652 * the element is PLAYING, the #GstClock is running and 2653 * the data is flowing. 2654 */ 2655 PLAYING = 4, 2656 } 2657 alias GstState State; 2658 2659 /** 2660 * These are the different state changes an element goes through. 2661 * %GST_STATE_NULL ⇒ %GST_STATE_PLAYING is called an upwards state change 2662 * and %GST_STATE_PLAYING ⇒ %GST_STATE_NULL a downwards state change. 2663 */ 2664 public enum GstStateChange 2665 { 2666 /** 2667 * state change from NULL to READY. 2668 * * The element must check if the resources it needs are available. Device 2669 * sinks and -sources typically try to probe the device to constrain their 2670 * caps. 2671 * * The element opens the device (in case feature need to be probed). 2672 */ 2673 NULL_TO_READY = 10, 2674 /** 2675 * state change from READY to PAUSED. 2676 * * The element pads are activated in order to receive data in PAUSED. 2677 * Streaming threads are started. 2678 * * Some elements might need to return %GST_STATE_CHANGE_ASYNC and complete 2679 * the state change when they have enough information. It is a requirement 2680 * for sinks to return %GST_STATE_CHANGE_ASYNC and complete the state change 2681 * when they receive the first buffer or %GST_EVENT_EOS (preroll). 2682 * Sinks also block the dataflow when in PAUSED. 2683 * * A pipeline resets the running_time to 0. 2684 * * Live sources return %GST_STATE_CHANGE_NO_PREROLL and don't generate data. 2685 */ 2686 READY_TO_PAUSED = 19, 2687 /** 2688 * state change from PAUSED to PLAYING. 2689 * * Most elements ignore this state change. 2690 * * The pipeline selects a #GstClock and distributes this to all the children 2691 * before setting them to PLAYING. This means that it is only allowed to 2692 * synchronize on the #GstClock in the PLAYING state. 2693 * * The pipeline uses the #GstClock and the running_time to calculate the 2694 * base_time. The base_time is distributed to all children when performing 2695 * the state change. 2696 * * Sink elements stop blocking on the preroll buffer or event and start 2697 * rendering the data. 2698 * * Sinks can post %GST_MESSAGE_EOS in the PLAYING state. It is not allowed 2699 * to post %GST_MESSAGE_EOS when not in the PLAYING state. 2700 * * While streaming in PAUSED or PLAYING elements can create and remove 2701 * sometimes pads. 2702 * * Live sources start generating data and return %GST_STATE_CHANGE_SUCCESS. 2703 */ 2704 PAUSED_TO_PLAYING = 28, 2705 /** 2706 * state change from PLAYING to PAUSED. 2707 * * Most elements ignore this state change. 2708 * * The pipeline calculates the running_time based on the last selected 2709 * #GstClock and the base_time. It stores this information to continue 2710 * playback when going back to the PLAYING state. 2711 * * Sinks unblock any #GstClock wait calls. 2712 * * When a sink does not have a pending buffer to play, it returns 2713 * #GST_STATE_CHANGE_ASYNC from this state change and completes the state 2714 * change when it receives a new buffer or an %GST_EVENT_EOS. 2715 * * Any queued %GST_MESSAGE_EOS items are removed since they will be reposted 2716 * when going back to the PLAYING state. The EOS messages are queued in 2717 * #GstBin containers. 2718 * * Live sources stop generating data and return %GST_STATE_CHANGE_NO_PREROLL. 2719 */ 2720 PLAYING_TO_PAUSED = 35, 2721 /** 2722 * state change from PAUSED to READY. 2723 * * Sinks unblock any waits in the preroll. 2724 * * Elements unblock any waits on devices 2725 * * Chain or get_range functions return %GST_FLOW_FLUSHING. 2726 * * The element pads are deactivated so that streaming becomes impossible and 2727 * all streaming threads are stopped. 2728 * * The sink forgets all negotiated formats 2729 * * Elements remove all sometimes pads 2730 */ 2731 PAUSED_TO_READY = 26, 2732 /** 2733 * state change from READY to NULL. 2734 * * Elements close devices 2735 * * Elements reset any internal state. 2736 */ 2737 READY_TO_NULL = 17, 2738 /** 2739 * state change from NULL to NULL. (Since 1.14) 2740 */ 2741 NULL_TO_NULL = 9, 2742 /** 2743 * state change from READY to READY, 2744 * This might happen when going to PAUSED asynchronously failed, in that case 2745 * elements should make sure they are in a proper, coherent READY state. (Since 1.14) 2746 */ 2747 READY_TO_READY = 18, 2748 /** 2749 * state change from PAUSED to PAUSED. 2750 * This might happen when elements were in PLAYING state and 'lost state', 2751 * they should make sure to go back to real 'PAUSED' state (prerolling for example). (Since 1.14) 2752 */ 2753 PAUSED_TO_PAUSED = 27, 2754 /** 2755 * state change from PLAYING to PLAYING. (Since 1.14) 2756 */ 2757 PLAYING_TO_PLAYING = 36, 2758 } 2759 alias GstStateChange StateChange; 2760 2761 /** 2762 * The possible return values from a state change function such as 2763 * gst_element_set_state(). Only @GST_STATE_CHANGE_FAILURE is a real failure. 2764 */ 2765 public enum GstStateChangeReturn 2766 { 2767 /** 2768 * the state change failed 2769 */ 2770 FAILURE = 0, 2771 /** 2772 * the state change succeeded 2773 */ 2774 SUCCESS = 1, 2775 /** 2776 * the state change will happen asynchronously 2777 */ 2778 ASYNC = 2, 2779 /** 2780 * the state change succeeded but the element 2781 * cannot produce data in %GST_STATE_PAUSED. 2782 * This typically happens with live sources. 2783 */ 2784 NO_PREROLL = 3, 2785 } 2786 alias GstStateChangeReturn StateChangeReturn; 2787 2788 /** 2789 * Stream errors are for anything related to the stream being processed: 2790 * format errors, media type errors, ... 2791 * They're typically used by decoders, demuxers, converters, ... 2792 */ 2793 public enum GstStreamError 2794 { 2795 /** 2796 * a general error which doesn't fit in any other 2797 * category. Make sure you add a custom message to the error call. 2798 */ 2799 FAILED = 1, 2800 /** 2801 * do not use this except as a placeholder for 2802 * deciding where to go while developing code. 2803 */ 2804 TOO_LAZY = 2, 2805 /** 2806 * use this when you do not want to implement 2807 * this functionality yet. 2808 */ 2809 NOT_IMPLEMENTED = 3, 2810 /** 2811 * used when the element doesn't know the 2812 * stream's type. 2813 */ 2814 TYPE_NOT_FOUND = 4, 2815 /** 2816 * used when the element doesn't handle this type 2817 * of stream. 2818 */ 2819 WRONG_TYPE = 5, 2820 /** 2821 * used when there's no codec to handle the 2822 * stream's type. 2823 */ 2824 CODEC_NOT_FOUND = 6, 2825 /** 2826 * used when decoding fails. 2827 */ 2828 DECODE = 7, 2829 /** 2830 * used when encoding fails. 2831 */ 2832 ENCODE = 8, 2833 /** 2834 * used when demuxing fails. 2835 */ 2836 DEMUX = 9, 2837 /** 2838 * used when muxing fails. 2839 */ 2840 MUX = 10, 2841 /** 2842 * used when the stream is of the wrong format 2843 * (for example, wrong caps). 2844 */ 2845 FORMAT = 11, 2846 /** 2847 * used when the stream is encrypted and can't be 2848 * decrypted because this is not supported by the element. 2849 */ 2850 DECRYPT = 12, 2851 /** 2852 * used when the stream is encrypted and 2853 * can't be decrypted because no suitable key is available. 2854 */ 2855 DECRYPT_NOKEY = 13, 2856 /** 2857 * the number of stream error types. 2858 */ 2859 NUM_ERRORS = 14, 2860 } 2861 alias GstStreamError StreamError; 2862 2863 public enum GstStreamFlags 2864 { 2865 /** 2866 * This stream has no special attributes 2867 */ 2868 NONE = 0, 2869 /** 2870 * This stream is a sparse stream (e.g. a subtitle 2871 * stream), data may flow only in irregular intervals with large gaps in 2872 * between. 2873 */ 2874 SPARSE = 1, 2875 /** 2876 * This stream should be selected by default. This 2877 * flag may be used by demuxers to signal that a stream should be selected 2878 * by default in a playback scenario. 2879 */ 2880 SELECT = 2, 2881 /** 2882 * This stream should not be selected by default. 2883 * This flag may be used by demuxers to signal that a stream should not 2884 * be selected by default in a playback scenario, but only if explicitly 2885 * selected by the user (e.g. an audio track for the hard of hearing or 2886 * a director's commentary track). 2887 */ 2888 UNSELECT = 4, 2889 } 2890 alias GstStreamFlags StreamFlags; 2891 2892 /** 2893 * The type of a %GST_MESSAGE_STREAM_STATUS. The stream status messages inform the 2894 * application of new streaming threads and their status. 2895 */ 2896 public enum GstStreamStatusType 2897 { 2898 /** 2899 * A new thread need to be created. 2900 */ 2901 CREATE = 0, 2902 /** 2903 * a thread entered its loop function 2904 */ 2905 ENTER = 1, 2906 /** 2907 * a thread left its loop function 2908 */ 2909 LEAVE = 2, 2910 /** 2911 * a thread is destroyed 2912 */ 2913 DESTROY = 3, 2914 /** 2915 * a thread is started 2916 */ 2917 START = 8, 2918 /** 2919 * a thread is paused 2920 */ 2921 PAUSE = 9, 2922 /** 2923 * a thread is stopped 2924 */ 2925 STOP = 10, 2926 } 2927 alias GstStreamStatusType StreamStatusType; 2928 2929 /** 2930 * #GstStreamType describes a high level classification set for 2931 * flows of data in #GstStream objects. 2932 * 2933 * Note that this is a flag, and therefore users should not assume it 2934 * will be a single value. Do not use the equality operator for checking 2935 * whether a stream is of a certain type. 2936 * 2937 * Since: 1.10 2938 */ 2939 public enum GstStreamType 2940 { 2941 /** 2942 * The stream is of unknown (unclassified) type. 2943 */ 2944 UNKNOWN = 1, 2945 /** 2946 * The stream is of audio data 2947 */ 2948 AUDIO = 2, 2949 /** 2950 * The stream carries video data 2951 */ 2952 VIDEO = 4, 2953 /** 2954 * The stream is a muxed container type 2955 */ 2956 CONTAINER = 8, 2957 /** 2958 * The stream contains subtitle / subpicture data. 2959 */ 2960 TEXT = 16, 2961 } 2962 alias GstStreamType StreamType; 2963 2964 /** 2965 * The type of a %GST_MESSAGE_STRUCTURE_CHANGE. 2966 */ 2967 public enum GstStructureChangeType 2968 { 2969 /** 2970 * Pad linking is starting or done. 2971 */ 2972 LINK = 0, 2973 /** 2974 * Pad unlinking is starting or done. 2975 */ 2976 UNLINK = 1, 2977 } 2978 alias GstStructureChangeType StructureChangeType; 2979 2980 /** 2981 * Extra tag flags used when registering tags. 2982 */ 2983 public enum GstTagFlag 2984 { 2985 /** 2986 * undefined flag 2987 */ 2988 UNDEFINED = 0, 2989 /** 2990 * tag is meta data 2991 */ 2992 META = 1, 2993 /** 2994 * tag is encoded 2995 */ 2996 ENCODED = 2, 2997 /** 2998 * tag is decoded 2999 */ 3000 DECODED = 3, 3001 /** 3002 * number of tag flags 3003 */ 3004 COUNT = 4, 3005 } 3006 alias GstTagFlag TagFlag; 3007 3008 /** 3009 * The different tag merging modes are basically replace, overwrite and append, 3010 * but they can be seen from two directions. Given two taglists: (A) the tags 3011 * already in the element and (B) the ones that are supplied to the element ( 3012 * e.g. via gst_tag_setter_merge_tags() / gst_tag_setter_add_tags() or a 3013 * %GST_EVENT_TAG), how are these tags merged? 3014 * In the table below this is shown for the cases that a tag exists in the list 3015 * (A) or does not exists (!A) and combinations thereof. 3016 * 3017 * <table frame="all" colsep="1" rowsep="1"> 3018 * <title>merge mode</title> 3019 * <tgroup cols='5' align='left'> 3020 * <thead> 3021 * <row> 3022 * <entry>merge mode</entry> 3023 * <entry>A + B</entry> 3024 * <entry>A + !B</entry> 3025 * <entry>!A + B</entry> 3026 * <entry>!A + !B</entry> 3027 * </row> 3028 * </thead> 3029 * <tbody> 3030 * <row> 3031 * <entry>REPLACE_ALL</entry> 3032 * <entry>B</entry> 3033 * <entry>-</entry> 3034 * <entry>B</entry> 3035 * <entry>-</entry> 3036 * </row> 3037 * <row> 3038 * <entry>REPLACE</entry> 3039 * <entry>B</entry> 3040 * <entry>A</entry> 3041 * <entry>B</entry> 3042 * <entry>-</entry> 3043 * </row> 3044 * <row> 3045 * <entry>APPEND</entry> 3046 * <entry>A, B</entry> 3047 * <entry>A</entry> 3048 * <entry>B</entry> 3049 * <entry>-</entry> 3050 * </row> 3051 * <row> 3052 * <entry>PREPEND</entry> 3053 * <entry>B, A</entry> 3054 * <entry>A</entry> 3055 * <entry>B</entry> 3056 * <entry>-</entry> 3057 * </row> 3058 * <row> 3059 * <entry>KEEP</entry> 3060 * <entry>A</entry> 3061 * <entry>A</entry> 3062 * <entry>B</entry> 3063 * <entry>-</entry> 3064 * </row> 3065 * <row> 3066 * <entry>KEEP_ALL</entry> 3067 * <entry>A</entry> 3068 * <entry>A</entry> 3069 * <entry>-</entry> 3070 * <entry>-</entry> 3071 * </row> 3072 * </tbody> 3073 * </tgroup> 3074 * </table> 3075 */ 3076 public enum GstTagMergeMode 3077 { 3078 /** 3079 * undefined merge mode 3080 */ 3081 UNDEFINED = 0, 3082 /** 3083 * replace all tags (clear list and append) 3084 */ 3085 REPLACE_ALL = 1, 3086 /** 3087 * replace tags 3088 */ 3089 REPLACE = 2, 3090 /** 3091 * append tags 3092 */ 3093 APPEND = 3, 3094 /** 3095 * prepend tags 3096 */ 3097 PREPEND = 4, 3098 /** 3099 * keep existing tags 3100 */ 3101 KEEP = 5, 3102 /** 3103 * keep all existing tags 3104 */ 3105 KEEP_ALL = 6, 3106 /** 3107 * the number of merge modes 3108 */ 3109 COUNT = 7, 3110 } 3111 alias GstTagMergeMode TagMergeMode; 3112 3113 /** 3114 * GstTagScope specifies if a taglist applies to the complete 3115 * medium or only to one single stream. 3116 */ 3117 public enum GstTagScope 3118 { 3119 /** 3120 * tags specific to this single stream 3121 */ 3122 STREAM = 0, 3123 /** 3124 * global tags for the complete medium 3125 */ 3126 GLOBAL = 1, 3127 } 3128 alias GstTagScope TagScope; 3129 3130 /** 3131 * The different states a task can be in 3132 */ 3133 public enum GstTaskState 3134 { 3135 /** 3136 * the task is started and running 3137 */ 3138 STARTED = 0, 3139 /** 3140 * the task is stopped 3141 */ 3142 STOPPED = 1, 3143 /** 3144 * the task is paused 3145 */ 3146 PAUSED = 2, 3147 } 3148 alias GstTaskState TaskState; 3149 3150 /** 3151 * The different types of TOC entries (see #GstTocEntry). 3152 * 3153 * There are two types of TOC entries: alternatives or parts in a sequence. 3154 */ 3155 public enum GstTocEntryType 3156 { 3157 /** 3158 * entry is an angle (i.e. an alternative) 3159 */ 3160 ANGLE = -3, 3161 /** 3162 * entry is a version (i.e. alternative) 3163 */ 3164 VERSION = -2, 3165 /** 3166 * entry is an edition (i.e. alternative) 3167 */ 3168 EDITION = -1, 3169 /** 3170 * invalid entry type value 3171 */ 3172 INVALID = 0, 3173 /** 3174 * entry is a title (i.e. a part of a sequence) 3175 */ 3176 TITLE = 1, 3177 /** 3178 * entry is a track (i.e. a part of a sequence) 3179 */ 3180 TRACK = 2, 3181 /** 3182 * entry is a chapter (i.e. a part of a sequence) 3183 */ 3184 CHAPTER = 3, 3185 } 3186 alias GstTocEntryType TocEntryType; 3187 3188 /** 3189 * How a #GstTocEntry should be repeated. By default, entries are played a 3190 * single time. 3191 * 3192 * Since: 1.4 3193 */ 3194 public enum GstTocLoopType 3195 { 3196 /** 3197 * single forward playback 3198 */ 3199 NONE = 0, 3200 /** 3201 * repeat forward 3202 */ 3203 FORWARD = 1, 3204 /** 3205 * repeat backward 3206 */ 3207 REVERSE = 2, 3208 /** 3209 * repeat forward and backward 3210 */ 3211 PING_PONG = 3, 3212 } 3213 alias GstTocLoopType TocLoopType; 3214 3215 /** 3216 * The scope of a TOC. 3217 */ 3218 public enum GstTocScope 3219 { 3220 /** 3221 * global TOC representing all selectable options 3222 * (this is what applications are usually interested in) 3223 */ 3224 GLOBAL = 1, 3225 /** 3226 * TOC for the currently active/selected stream 3227 * (this is a TOC representing the current stream from start to EOS, 3228 * and is what a TOC writer / muxer is usually interested in; it will 3229 * usually be a subset of the global TOC, e.g. just the chapters of 3230 * the current title, or the chapters selected for playback from the 3231 * current title) 3232 */ 3233 CURRENT = 2, 3234 } 3235 alias GstTocScope TocScope; 3236 3237 /** 3238 * Flag that describe the value. These flags help applications processing the 3239 * logs to understand the values. 3240 */ 3241 public enum GstTracerValueFlags 3242 { 3243 /** 3244 * no flags 3245 */ 3246 NONE = 0, 3247 /** 3248 * the value is optional. When using this flag 3249 * one need to have an additional boolean arg before this value in the 3250 * var-args list passed to gst_tracer_record_log(). 3251 */ 3252 OPTIONAL = 1, 3253 /** 3254 * the value is a combined figure, since the 3255 * start of tracing. Examples are averages or timestamps. 3256 */ 3257 AGGREGATED = 2, 3258 } 3259 alias GstTracerValueFlags TracerValueFlags; 3260 3261 /** 3262 * Tracing record will contain fields that contain a meassured value or extra 3263 * meta-data. One such meta data are values that tell where a measurement was 3264 * taken. This enumerating declares to which scope such a meta data field 3265 * relates to. If it is e.g. %GST_TRACER_VALUE_SCOPE_PAD, then each of the log 3266 * events may contain values for different #GstPads. 3267 * 3268 * Since: 1.8 3269 */ 3270 public enum GstTracerValueScope 3271 { 3272 /** 3273 * the value is related to the process 3274 */ 3275 PROCESS = 0, 3276 /** 3277 * the value is related to a thread 3278 */ 3279 THREAD = 1, 3280 /** 3281 * the value is related to an #GstElement 3282 */ 3283 ELEMENT = 2, 3284 /** 3285 * the value is related to a #GstPad 3286 */ 3287 PAD = 3, 3288 } 3289 alias GstTracerValueScope TracerValueScope; 3290 3291 /** 3292 * The probability of the typefind function. Higher values have more certainty 3293 * in doing a reliable typefind. 3294 */ 3295 public enum GstTypeFindProbability 3296 { 3297 /** 3298 * type undetected. 3299 */ 3300 NONE = 0, 3301 /** 3302 * unlikely typefind. 3303 */ 3304 MINIMUM = 1, 3305 /** 3306 * possible type detected. 3307 */ 3308 POSSIBLE = 50, 3309 /** 3310 * likely a type was detected. 3311 */ 3312 LIKELY = 80, 3313 /** 3314 * nearly certain that a type was detected. 3315 */ 3316 NEARLY_CERTAIN = 99, 3317 /** 3318 * very certain a type was detected. 3319 */ 3320 MAXIMUM = 100, 3321 } 3322 alias GstTypeFindProbability TypeFindProbability; 3323 3324 /** 3325 * Different URI-related errors that can occur. 3326 */ 3327 public enum GstURIError 3328 { 3329 /** 3330 * The protocol is not supported 3331 */ 3332 UNSUPPORTED_PROTOCOL = 0, 3333 /** 3334 * There was a problem with the URI 3335 */ 3336 BAD_URI = 1, 3337 /** 3338 * Could not set or change the URI because the 3339 * URI handler was in a state where that is not possible or not permitted 3340 */ 3341 BAD_STATE = 2, 3342 /** 3343 * There was a problem with the entity that 3344 * the URI references 3345 */ 3346 BAD_REFERENCE = 3, 3347 } 3348 alias GstURIError URIError; 3349 3350 /** 3351 * The different types of URI direction. 3352 */ 3353 public enum GstURIType 3354 { 3355 /** 3356 * The URI direction is unknown 3357 */ 3358 UNKNOWN = 0, 3359 /** 3360 * The URI is a consumer. 3361 */ 3362 SINK = 1, 3363 /** 3364 * The URI is a producer. 3365 */ 3366 SRC = 2, 3367 } 3368 alias GstURIType URIType; 3369 3370 struct GstAllocationParams 3371 { 3372 /** 3373 * flags to control allocation 3374 */ 3375 GstMemoryFlags flags; 3376 /** 3377 * the desired alignment of the memory 3378 */ 3379 size_t alig; 3380 /** 3381 * the desired prefix 3382 */ 3383 size_t prefix; 3384 /** 3385 * the desired padding 3386 */ 3387 size_t padding; 3388 void*[4] GstReserved; 3389 } 3390 3391 struct GstAllocator 3392 { 3393 GstObject object; 3394 const(char)* memType; 3395 /** 3396 * the implementation of the GstMemoryMapFunction 3397 */ 3398 GstMemoryMapFunction memMap; 3399 /** 3400 * the implementation of the GstMemoryUnmapFunction 3401 */ 3402 GstMemoryUnmapFunction memUnmap; 3403 /** 3404 * the implementation of the GstMemoryCopyFunction 3405 */ 3406 GstMemoryCopyFunction memCopy; 3407 /** 3408 * the implementation of the GstMemoryShareFunction 3409 */ 3410 GstMemoryShareFunction memShare; 3411 /** 3412 * the implementation of the GstMemoryIsSpanFunction 3413 */ 3414 GstMemoryIsSpanFunction memIsSpan; 3415 /** 3416 * the implementation of the GstMemoryMapFullFunction. 3417 * Will be used instead of @mem_map if present. (Since 1.6) 3418 */ 3419 GstMemoryMapFullFunction memMapFull; 3420 /** 3421 * the implementation of the GstMemoryUnmapFullFunction. 3422 * Will be used instead of @mem_unmap if present. (Since 1.6) 3423 */ 3424 GstMemoryUnmapFullFunction memUnmapFull; 3425 void*[2] GstReserved; 3426 GstAllocatorPrivate* priv; 3427 } 3428 3429 /** 3430 * The #GstAllocator is used to create new memory. 3431 */ 3432 struct GstAllocatorClass 3433 { 3434 /** 3435 * Object parent class 3436 */ 3437 GstObjectClass objectClass; 3438 /** 3439 * 3440 * Params: 3441 * allocator = a #GstAllocator to use 3442 * size = size of the visible memory area 3443 * params = optional parameters 3444 * Returns: a new #GstMemory. 3445 */ 3446 extern(C) GstMemory* function(GstAllocator* allocator, size_t size, GstAllocationParams* params) alloc; 3447 /** */ 3448 extern(C) void function(GstAllocator* allocator, GstMemory* memory) free; 3449 void*[4] GstReserved; 3450 } 3451 3452 struct GstAllocatorPrivate; 3453 3454 struct GstAtomicQueue; 3455 3456 struct GstBin 3457 { 3458 GstElement element; 3459 /** 3460 * the number of children in this bin 3461 */ 3462 int numchildren; 3463 /** 3464 * the list of children in this bin 3465 */ 3466 GList* children; 3467 /** 3468 * updated whenever @children changes 3469 */ 3470 uint childrenCookie; 3471 /** 3472 * internal bus for handling child messages 3473 */ 3474 GstBus* childBus; 3475 /** 3476 * queued and cached messages 3477 */ 3478 GList* messages; 3479 /** 3480 * the bin is currently calculating its state 3481 */ 3482 bool polling; 3483 /** 3484 * the bin needs to recalculate its state (deprecated) 3485 */ 3486 bool stateDirty; 3487 /** 3488 * the bin needs to select a new clock 3489 */ 3490 bool clockDirty; 3491 /** 3492 * the last clock selected 3493 */ 3494 GstClock* providedClock; 3495 /** 3496 * the element that provided @provided_clock 3497 */ 3498 GstElement* clockProvider; 3499 GstBinPrivate* priv; 3500 void*[4] GstReserved; 3501 } 3502 3503 /** 3504 * Subclasses can override the @add_element and @remove_element to 3505 * update the list of children in the bin. 3506 * 3507 * The @handle_message method can be overridden to implement custom 3508 * message handling. @handle_message takes ownership of the message, just like 3509 * #gst_element_post_message. 3510 * 3511 * The @deep_element_added vfunc will be called when a new element has been 3512 * added to any bin inside this bin, so it will also be called if a new child 3513 * was added to a sub-bin of this bin. #GstBin implementations that override 3514 * this message should chain up to the parent class implementation so the 3515 * element-added-deep signal is emitted on all parents. 3516 */ 3517 struct GstBinClass 3518 { 3519 /** 3520 * bin parent class 3521 */ 3522 GstElementClass parentClass; 3523 GThreadPool* pool; 3524 /** */ 3525 extern(C) void function(GstBin* bin, GstElement* child) elementAdded; 3526 /** */ 3527 extern(C) void function(GstBin* bin, GstElement* child) elementRemoved; 3528 /** */ 3529 extern(C) int function(GstBin* bin, GstElement* element) addElement; 3530 /** */ 3531 extern(C) int function(GstBin* bin, GstElement* element) removeElement; 3532 /** */ 3533 extern(C) void function(GstBin* bin, GstMessage* message) handleMessage; 3534 /** */ 3535 extern(C) int function(GstBin* bin) doLatency; 3536 /** */ 3537 extern(C) void function(GstBin* bin, GstBin* subBin, GstElement* child) deepElementAdded; 3538 /** */ 3539 extern(C) void function(GstBin* bin, GstBin* subBin, GstElement* child) deepElementRemoved; 3540 void*[2] GstReserved; 3541 } 3542 3543 struct GstBinPrivate; 3544 3545 struct GstBitmask; 3546 3547 struct GstBuffer 3548 { 3549 /** 3550 * the parent structure 3551 */ 3552 GstMiniObject miniObject; 3553 /** 3554 * pointer to the pool owner of the buffer 3555 */ 3556 GstBufferPool* pool; 3557 /** 3558 * presentation timestamp of the buffer, can be #GST_CLOCK_TIME_NONE when the 3559 * pts is not known or relevant. The pts contains the timestamp when the 3560 * media should be presented to the user. 3561 */ 3562 GstClockTime pts; 3563 /** 3564 * decoding timestamp of the buffer, can be #GST_CLOCK_TIME_NONE when the 3565 * dts is not known or relevant. The dts contains the timestamp when the 3566 * media should be processed. 3567 */ 3568 GstClockTime dts; 3569 /** 3570 * duration in time of the buffer data, can be #GST_CLOCK_TIME_NONE 3571 * when the duration is not known or relevant. 3572 */ 3573 GstClockTime duration; 3574 /** 3575 * a media specific offset for the buffer data. 3576 * For video frames, this is the frame number of this buffer. 3577 * For audio samples, this is the offset of the first sample in this buffer. 3578 * For file data or compressed data this is the byte offset of the first 3579 * byte in this buffer. 3580 */ 3581 ulong offset; 3582 /** 3583 * the last offset contained in this buffer. It has the same 3584 * format as @offset. 3585 */ 3586 ulong offsetEnd; 3587 } 3588 3589 struct GstBufferList; 3590 3591 struct GstBufferPool 3592 { 3593 GstObject object; 3594 int flushing; 3595 GstBufferPoolPrivate* priv; 3596 void*[4] GstReserved; 3597 } 3598 3599 /** 3600 * Parameters passed to the gst_buffer_pool_acquire_buffer() function to control the 3601 * allocation of the buffer. 3602 * 3603 * The default implementation ignores the @start and @stop members but other 3604 * implementations can use this extra information to decide what buffer to 3605 * return. 3606 */ 3607 struct GstBufferPoolAcquireParams 3608 { 3609 /** 3610 * the format of @start and @stop 3611 */ 3612 GstFormat format; 3613 /** 3614 * the start position 3615 */ 3616 long start; 3617 /** 3618 * the stop position 3619 */ 3620 long stop; 3621 /** 3622 * additional flags 3623 */ 3624 GstBufferPoolAcquireFlags flags; 3625 void*[4] GstReserved; 3626 } 3627 3628 /** 3629 * The GstBufferPool class. 3630 */ 3631 struct GstBufferPoolClass 3632 { 3633 /** 3634 * Object parent class 3635 */ 3636 GstObjectClass objectClass; 3637 /** 3638 * 3639 * Params: 3640 * pool = a #GstBufferPool 3641 * Returns: a %NULL terminated array 3642 * of strings. 3643 */ 3644 extern(C) char** function(GstBufferPool* pool) getOptions; 3645 /** 3646 * 3647 * Params: 3648 * pool = a #GstBufferPool 3649 * config = a #GstStructure 3650 * Returns: %TRUE when the configuration could be set. 3651 */ 3652 extern(C) int function(GstBufferPool* pool, GstStructure* config) setConfig; 3653 /** */ 3654 extern(C) int function(GstBufferPool* pool) start; 3655 /** */ 3656 extern(C) int function(GstBufferPool* pool) stop; 3657 /** 3658 * 3659 * Params: 3660 * pool = a #GstBufferPool 3661 * buffer = a location for a #GstBuffer 3662 * params = parameters. 3663 * Returns: a #GstFlowReturn such as %GST_FLOW_FLUSHING when the pool is 3664 * inactive. 3665 */ 3666 extern(C) GstFlowReturn function(GstBufferPool* pool, GstBuffer** buffer, GstBufferPoolAcquireParams* params) acquireBuffer; 3667 /** */ 3668 extern(C) GstFlowReturn function(GstBufferPool* pool, GstBuffer** buffer, GstBufferPoolAcquireParams* params) allocBuffer; 3669 /** */ 3670 extern(C) void function(GstBufferPool* pool, GstBuffer* buffer) resetBuffer; 3671 /** */ 3672 extern(C) void function(GstBufferPool* pool, GstBuffer* buffer) releaseBuffer; 3673 /** */ 3674 extern(C) void function(GstBufferPool* pool, GstBuffer* buffer) freeBuffer; 3675 /** */ 3676 extern(C) void function(GstBufferPool* pool) flushStart; 3677 /** */ 3678 extern(C) void function(GstBufferPool* pool) flushStop; 3679 void*[2] GstReserved; 3680 } 3681 3682 struct GstBufferPoolPrivate; 3683 3684 struct GstBus 3685 { 3686 GstObject object; 3687 GstBusPrivate* priv; 3688 void*[4] GstReserved; 3689 } 3690 3691 struct GstBusClass 3692 { 3693 GstObjectClass parentClass; 3694 /** */ 3695 extern(C) void function(GstBus* bus, GstMessage* message) message; 3696 /** */ 3697 extern(C) void function(GstBus* bus, GstMessage* message) syncMessage; 3698 void*[4] GstReserved; 3699 } 3700 3701 struct GstBusPrivate; 3702 3703 struct GstCaps 3704 { 3705 /** 3706 * the parent type 3707 */ 3708 GstMiniObject miniObject; 3709 } 3710 3711 struct GstCapsFeatures; 3712 3713 struct GstChildProxy; 3714 3715 /** 3716 * #GstChildProxy interface. 3717 */ 3718 struct GstChildProxyInterface 3719 { 3720 /** 3721 * parent interface type. 3722 */ 3723 GTypeInterface parent; 3724 /** 3725 * 3726 * Params: 3727 * parent = the parent object to get the child from 3728 * name = the child's name 3729 * Returns: the child object or %NULL if 3730 * not found. Unref after usage. 3731 * 3732 * MT safe. 3733 */ 3734 extern(C) GObject* function(GstChildProxy* parent, const(char)* name) getChildByName; 3735 /** 3736 * 3737 * Params: 3738 * parent = the parent object to get the child from 3739 * index = the child's position in the child list 3740 * Returns: the child object or %NULL if 3741 * not found (index too high). Unref after usage. 3742 * 3743 * MT safe. 3744 */ 3745 extern(C) GObject* function(GstChildProxy* parent, uint index) getChildByIndex; 3746 /** 3747 * 3748 * Params: 3749 * parent = the parent object 3750 * Returns: the number of child objects 3751 * 3752 * MT safe. 3753 */ 3754 extern(C) uint function(GstChildProxy* parent) getChildrenCount; 3755 /** */ 3756 extern(C) void function(GstChildProxy* parent, GObject* child, const(char)* name) childAdded; 3757 /** */ 3758 extern(C) void function(GstChildProxy* parent, GObject* child, const(char)* name) childRemoved; 3759 void*[4] GstReserved; 3760 } 3761 3762 struct GstClock 3763 { 3764 GstObject object; 3765 GstClockPrivate* priv; 3766 void*[4] GstReserved; 3767 } 3768 3769 /** 3770 * GStreamer clock class. Override the vmethods to implement the clock 3771 * functionality. 3772 */ 3773 struct GstClockClass 3774 { 3775 /** 3776 * the parent class structure 3777 */ 3778 GstObjectClass parentClass; 3779 /** */ 3780 extern(C) GstClockTime function(GstClock* clock, GstClockTime oldResolution, GstClockTime newResolution) changeResolution; 3781 /** 3782 * 3783 * Params: 3784 * clock = a #GstClock 3785 * Returns: the resolution of the clock in units of #GstClockTime. 3786 * 3787 * MT safe. 3788 */ 3789 extern(C) GstClockTime function(GstClock* clock) getResolution; 3790 /** 3791 * 3792 * Params: 3793 * clock = a #GstClock to query 3794 * Returns: the internal time of the clock. Or GST_CLOCK_TIME_NONE when 3795 * given invalid input. 3796 * 3797 * MT safe. 3798 */ 3799 extern(C) GstClockTime function(GstClock* clock) getInternalTime; 3800 /** */ 3801 extern(C) GstClockReturn function(GstClock* clock, GstClockEntry* entry, GstClockTimeDiff* jitter) wait; 3802 /** */ 3803 extern(C) GstClockReturn function(GstClock* clock, GstClockEntry* entry) waitAsync; 3804 /** */ 3805 extern(C) void function(GstClock* clock, GstClockEntry* entry) unschedule; 3806 void*[4] GstReserved; 3807 } 3808 3809 /** 3810 * All pending timeouts or periodic notifies are converted into 3811 * an entry. 3812 * Note that GstClockEntry should be treated as an opaque structure. It must 3813 * not be extended or allocated using a custom allocator. 3814 */ 3815 struct GstClockEntry 3816 { 3817 /** 3818 * reference counter (read-only) 3819 */ 3820 int refcount; 3821 GstClock* clock; 3822 GstClockEntryType type; 3823 GstClockTime time; 3824 GstClockTime interval; 3825 GstClockReturn status; 3826 GstClockCallback func; 3827 void* userData; 3828 GDestroyNotify destroyData; 3829 bool unscheduled; 3830 bool wokenUp; 3831 void*[4] GstReserved; 3832 } 3833 3834 struct GstClockPrivate; 3835 3836 struct GstContext; 3837 3838 struct GstControlBinding 3839 { 3840 GstObject parent; 3841 /** 3842 * name of the property of this binding 3843 */ 3844 char* name; 3845 /** 3846 * #GParamSpec for this property 3847 */ 3848 GParamSpec* pspec; 3849 GstObject* object; 3850 bool disabled; 3851 union ABI 3852 { 3853 struct Abi 3854 { 3855 GstControlBindingPrivate* priv; 3856 } 3857 Abi abi; 3858 void*[4] GstReserved; 3859 } 3860 ABI abi; 3861 } 3862 3863 /** 3864 * The class structure of #GstControlBinding. 3865 */ 3866 struct GstControlBindingClass 3867 { 3868 /** 3869 * Parent class 3870 */ 3871 GstObjectClass parentClass; 3872 /** 3873 * 3874 * Params: 3875 * binding = the control binding 3876 * object = the object that has controlled properties 3877 * timestamp = the time that should be processed 3878 * lastSync = the last time this was called 3879 * Returns: %TRUE if the controller value could be applied to the object 3880 * property, %FALSE otherwise 3881 */ 3882 extern(C) int function(GstControlBinding* binding, GstObject* object, GstClockTime timestamp, GstClockTime lastSync) syncValues; 3883 /** 3884 * 3885 * Params: 3886 * binding = the control binding 3887 * timestamp = the time the control-change should be read from 3888 * Returns: the GValue of the property at the given time, 3889 * or %NULL if the property isn't controlled. 3890 */ 3891 extern(C) GValue* function(GstControlBinding* binding, GstClockTime timestamp) getValue; 3892 /** 3893 * 3894 * Params: 3895 * binding = the control binding 3896 * timestamp = the time that should be processed 3897 * interval = the time spacing between subsequent values 3898 * nValues = the number of values 3899 * values = array to put control-values in 3900 * Returns: %TRUE if the given array could be filled, %FALSE otherwise 3901 */ 3902 extern(C) int function(GstControlBinding* binding, GstClockTime timestamp, GstClockTime interval, uint nValues, void* values) getValueArray; 3903 /** 3904 * 3905 * Params: 3906 * binding = the control binding 3907 * timestamp = the time that should be processed 3908 * interval = the time spacing between subsequent values 3909 * nValues = the number of values 3910 * values = array to put control-values in 3911 * Returns: %TRUE if the given array could be filled, %FALSE otherwise 3912 */ 3913 extern(C) int function(GstControlBinding* binding, GstClockTime timestamp, GstClockTime interval, uint nValues, GValue* values) getGValueArray; 3914 void*[4] GstReserved; 3915 } 3916 3917 struct GstControlBindingPrivate; 3918 3919 struct GstControlSource 3920 { 3921 GstObject parent; 3922 /** 3923 * Function for returning a value for a given timestamp 3924 */ 3925 GstControlSourceGetValue getValue; 3926 /** 3927 * Function for returning a values array for a given timestamp 3928 */ 3929 GstControlSourceGetValueArray getValueArray; 3930 void*[4] GstReserved; 3931 } 3932 3933 /** 3934 * The class structure of #GstControlSource. 3935 */ 3936 struct GstControlSourceClass 3937 { 3938 /** 3939 * Parent class 3940 */ 3941 GstObjectClass parentClass; 3942 void*[4] GstReserved; 3943 } 3944 3945 struct GstDateTime; 3946 3947 struct GstDebugCategory 3948 { 3949 int threshold; 3950 uint color; 3951 const(char)* name; 3952 const(char)* description; 3953 } 3954 3955 struct GstDebugMessage; 3956 3957 struct GstDevice 3958 { 3959 /** 3960 * The parent #GstObject strucuture. 3961 */ 3962 GstObject parent; 3963 GstDevicePrivate* priv; 3964 void*[4] GstReserved; 3965 } 3966 3967 /** 3968 * The class structure for a #GstDevice object. 3969 * 3970 * Since: 1.4 3971 */ 3972 struct GstDeviceClass 3973 { 3974 /** 3975 * The parent #GstObjectClass strucuture. 3976 */ 3977 GstObjectClass parentClass; 3978 /** 3979 * 3980 * Params: 3981 * device = a #GstDevice 3982 * name = name of new element, or %NULL to automatically 3983 * create a unique name. 3984 * Returns: a new #GstElement configured to use 3985 * this device 3986 */ 3987 extern(C) GstElement* function(GstDevice* device, const(char)* name) createElement; 3988 /** 3989 * 3990 * Params: 3991 * device = a #GstDevice 3992 * element = a #GstElement 3993 * Returns: %TRUE if the element could be reconfigured to use this device, 3994 * %FALSE otherwise. 3995 */ 3996 extern(C) int function(GstDevice* device, GstElement* element) reconfigureElement; 3997 void*[4] GstReserved; 3998 } 3999 4000 struct GstDeviceMonitor 4001 { 4002 /** 4003 * the parent #GstObject structure 4004 */ 4005 GstObject parent; 4006 GstDeviceMonitorPrivate* priv; 4007 void*[4] GstReserved; 4008 } 4009 4010 /** 4011 * Opaque device monitor class structure. 4012 * 4013 * Since: 1.4 4014 */ 4015 struct GstDeviceMonitorClass 4016 { 4017 /** 4018 * the parent #GstObjectClass structure 4019 */ 4020 GstObjectClass parentClass; 4021 void*[4] GstReserved; 4022 } 4023 4024 struct GstDeviceMonitorPrivate; 4025 4026 struct GstDevicePrivate; 4027 4028 struct GstDeviceProvider 4029 { 4030 /** 4031 * The parent #GstObject 4032 */ 4033 GstObject parent; 4034 /** 4035 * a #GList of the #GstDevice objects 4036 */ 4037 GList* devices; 4038 GstDeviceProviderPrivate* priv; 4039 void*[4] GstReserved; 4040 } 4041 4042 struct GstDeviceProviderClass 4043 { 4044 /** 4045 * the parent #GstObjectClass structure 4046 */ 4047 GstObjectClass parentClass; 4048 /** 4049 * a pointer to the #GstDeviceProviderFactory that creates this 4050 * provider 4051 */ 4052 GstDeviceProviderFactory* factory; 4053 /** */ 4054 extern(C) GList* function(GstDeviceProvider* provider) probe; 4055 /** 4056 * 4057 * Params: 4058 * provider = A #GstDeviceProvider 4059 * Returns: %TRUE if the device providering could be started 4060 */ 4061 extern(C) int function(GstDeviceProvider* provider) start; 4062 /** */ 4063 extern(C) void function(GstDeviceProvider* provider) stop; 4064 void* metadata; 4065 void*[4] GstReserved; 4066 } 4067 4068 struct GstDeviceProviderFactory; 4069 4070 /** 4071 * The opaque #GstDeviceProviderFactoryClass data structure. 4072 * 4073 * Since: 1.4 4074 */ 4075 struct GstDeviceProviderFactoryClass; 4076 4077 struct GstDeviceProviderPrivate; 4078 4079 struct GstDoubleRange; 4080 4081 struct GstDynamicTypeFactory; 4082 4083 struct GstDynamicTypeFactoryClass; 4084 4085 struct GstElement 4086 { 4087 GstObject object; 4088 /** 4089 * Used to serialize execution of gst_element_set_state() 4090 */ 4091 GRecMutex stateLock; 4092 /** 4093 * Used to signal completion of a state change 4094 */ 4095 GCond stateCond; 4096 /** 4097 * Used to detect concurrent execution of 4098 * gst_element_set_state() and gst_element_get_state() 4099 */ 4100 uint stateCookie; 4101 /** 4102 * the target state of an element as set by the application 4103 */ 4104 GstState targetState; 4105 /** 4106 * the current state of an element 4107 */ 4108 GstState currentState; 4109 /** 4110 * the next state of an element, can be #GST_STATE_VOID_PENDING if 4111 * the element is in the correct state. 4112 */ 4113 GstState nextState; 4114 /** 4115 * the final state the element should go to, can be 4116 * #GST_STATE_VOID_PENDING if the element is in the correct state 4117 */ 4118 GstState pendingState; 4119 /** 4120 * the last return value of an element state change 4121 */ 4122 GstStateChangeReturn lastReturn; 4123 /** 4124 * the bus of the element. This bus is provided to the element by the 4125 * parent element or the application. A #GstPipeline has a bus of its own. 4126 */ 4127 GstBus* bus; 4128 /** 4129 * the clock of the element. This clock is usually provided to the 4130 * element by the toplevel #GstPipeline. 4131 */ 4132 GstClock* clock; 4133 /** 4134 * the time of the clock right before the element is set to 4135 * PLAYING. Subtracting @base_time from the current clock time in the PLAYING 4136 * state will yield the running_time against the clock. 4137 */ 4138 GstClockTimeDiff baseTime; 4139 /** 4140 * the running_time of the last PAUSED state 4141 */ 4142 GstClockTime startTime; 4143 /** 4144 * number of pads of the element, includes both source and sink pads. 4145 */ 4146 ushort numpads; 4147 /** 4148 * list of pads 4149 */ 4150 GList* pads; 4151 /** 4152 * number of source pads of the element. 4153 */ 4154 ushort numsrcpads; 4155 /** 4156 * list of source pads 4157 */ 4158 GList* srcpads; 4159 /** 4160 * number of sink pads of the element. 4161 */ 4162 ushort numsinkpads; 4163 /** 4164 * list of sink pads 4165 */ 4166 GList* sinkpads; 4167 /** 4168 * updated whenever the a pad is added or removed 4169 */ 4170 uint padsCookie; 4171 /** 4172 * list of contexts 4173 */ 4174 GList* contexts; 4175 void*[3] GstReserved; 4176 } 4177 4178 struct GstElementClass 4179 { 4180 /** 4181 * the parent class structure 4182 */ 4183 GstObjectClass parentClass; 4184 /** 4185 * metadata for elements of this class 4186 */ 4187 void* metadata; 4188 /** 4189 * the #GstElementFactory that creates these elements 4190 */ 4191 GstElementFactory* elementfactory; 4192 /** 4193 * a #GList of #GstPadTemplate 4194 */ 4195 GList* padtemplates; 4196 /** 4197 * the number of padtemplates 4198 */ 4199 int numpadtemplates; 4200 /** 4201 * changed whenever the padtemplates change 4202 */ 4203 uint padTemplCookie; 4204 /** */ 4205 extern(C) void function(GstElement* element, GstPad* pad) padAdded; 4206 /** */ 4207 extern(C) void function(GstElement* element, GstPad* pad) padRemoved; 4208 /** */ 4209 extern(C) void function(GstElement* element) noMorePads; 4210 /** 4211 * 4212 * Params: 4213 * element = a #GstElement to find a request pad of. 4214 * templ = a #GstPadTemplate of which we want a pad of. 4215 * name = the name of the request #GstPad 4216 * to retrieve. Can be %NULL. 4217 * caps = the caps of the pad we want to 4218 * request. Can be %NULL. 4219 * Returns: requested #GstPad if found, 4220 * otherwise %NULL. Release after usage. 4221 */ 4222 extern(C) GstPad* function(GstElement* element, GstPadTemplate* templ, const(char)* name, GstCaps* caps) requestNewPad; 4223 /** */ 4224 extern(C) void function(GstElement* element, GstPad* pad) releasePad; 4225 /** 4226 * 4227 * Params: 4228 * element = a #GstElement to get the state of. 4229 * state = a pointer to #GstState to hold the state. 4230 * Can be %NULL. 4231 * pending = a pointer to #GstState to hold the pending 4232 * state. Can be %NULL. 4233 * timeout = a #GstClockTime to specify the timeout for an async 4234 * state change or %GST_CLOCK_TIME_NONE for infinite timeout. 4235 * Returns: %GST_STATE_CHANGE_SUCCESS if the element has no more pending state 4236 * and the last state change succeeded, %GST_STATE_CHANGE_ASYNC if the 4237 * element is still performing a state change or 4238 * %GST_STATE_CHANGE_FAILURE if the last state change failed. 4239 * 4240 * MT safe. 4241 */ 4242 extern(C) GstStateChangeReturn function(GstElement* element, GstState* state, GstState* pending, GstClockTime timeout) getState; 4243 /** 4244 * 4245 * Params: 4246 * element = a #GstElement to change state of. 4247 * state = the element's new #GstState. 4248 * Returns: Result of the state change using #GstStateChangeReturn. 4249 * 4250 * MT safe. 4251 */ 4252 extern(C) GstStateChangeReturn function(GstElement* element, GstState state) setState; 4253 /** 4254 * 4255 * Params: 4256 * element = a #GstElement 4257 * transition = the requested transition 4258 * Returns: the #GstStateChangeReturn of the state transition. 4259 */ 4260 extern(C) GstStateChangeReturn function(GstElement* element, GstStateChange transition) changeState; 4261 /** */ 4262 extern(C) void function(GstElement* element, GstState oldstate, GstState newstate, GstState pending) stateChanged; 4263 /** */ 4264 extern(C) void function(GstElement* element, GstBus* bus) setBus; 4265 /** 4266 * 4267 * Params: 4268 * element = a #GstElement to query 4269 * Returns: the GstClock provided by the 4270 * element or %NULL if no clock could be provided. Unref after usage. 4271 * 4272 * MT safe. 4273 */ 4274 extern(C) GstClock* function(GstElement* element) provideClock; 4275 /** 4276 * 4277 * Params: 4278 * element = a #GstElement to set the clock for. 4279 * clock = the #GstClock to set for the element. 4280 * Returns: %TRUE if the element accepted the clock. An element can refuse a 4281 * clock when it, for example, is not able to slave its internal clock to the 4282 * @clock or when it requires a specific clock to operate. 4283 * 4284 * MT safe. 4285 */ 4286 extern(C) int function(GstElement* element, GstClock* clock) setClock; 4287 /** 4288 * 4289 * Params: 4290 * element = a #GstElement to send the event to. 4291 * event = the #GstEvent to send to the element. 4292 * Returns: %TRUE if the event was handled. Events that trigger a preroll (such 4293 * as flushing seeks and steps) will emit %GST_MESSAGE_ASYNC_DONE. 4294 */ 4295 extern(C) int function(GstElement* element, GstEvent* event) sendEvent; 4296 /** 4297 * 4298 * Params: 4299 * element = a #GstElement to perform the query on. 4300 * query = the #GstQuery. 4301 * Returns: %TRUE if the query could be performed. 4302 * 4303 * MT safe. 4304 */ 4305 extern(C) int function(GstElement* element, GstQuery* query) query; 4306 /** 4307 * 4308 * Params: 4309 * element = a #GstElement posting the message 4310 * message = a #GstMessage to post 4311 * Returns: %TRUE if the message was successfully posted. The function returns 4312 * %FALSE if the element did not have a bus. 4313 * 4314 * MT safe. 4315 */ 4316 extern(C) int function(GstElement* element, GstMessage* message) postMessage; 4317 /** */ 4318 extern(C) void function(GstElement* element, GstContext* context) setContext; 4319 void*[18] GstReserved; 4320 } 4321 4322 struct GstElementFactory; 4323 4324 struct GstElementFactoryClass; 4325 4326 struct GstEvent 4327 { 4328 /** 4329 * the parent structure 4330 */ 4331 GstMiniObject miniObject; 4332 /** 4333 * the #GstEventType of the event 4334 */ 4335 GstEventType type; 4336 /** 4337 * the timestamp of the event 4338 */ 4339 ulong timestamp; 4340 /** 4341 * the sequence number of the event 4342 */ 4343 uint seqnum; 4344 } 4345 4346 struct GstFlagSet; 4347 4348 /** 4349 * A format definition 4350 */ 4351 struct GstFormatDefinition 4352 { 4353 /** 4354 * The unique id of this format 4355 */ 4356 GstFormat value; 4357 /** 4358 * A short nick of the format 4359 */ 4360 const(char)* nick; 4361 /** 4362 * A longer description of the format 4363 */ 4364 const(char)* description; 4365 /** 4366 * A quark for the nick 4367 */ 4368 GQuark quark; 4369 } 4370 4371 struct GstFraction; 4372 4373 struct GstFractionRange; 4374 4375 struct GstGhostPad 4376 { 4377 GstProxyPad pad; 4378 GstGhostPadPrivate* priv; 4379 } 4380 4381 struct GstGhostPadClass 4382 { 4383 GstProxyPadClass parentClass; 4384 void*[4] GstReserved; 4385 } 4386 4387 struct GstGhostPadPrivate; 4388 4389 struct GstInt64Range; 4390 4391 struct GstIntRange; 4392 4393 struct GstIterator 4394 { 4395 /** 4396 * The function to copy the iterator 4397 */ 4398 GstIteratorCopyFunction copy; 4399 /** 4400 * The function to get the next item in the iterator 4401 */ 4402 GstIteratorNextFunction next; 4403 /** 4404 * The function to be called for each item retrieved 4405 */ 4406 GstIteratorItemFunction item; 4407 /** 4408 * The function to call when a resync is needed. 4409 */ 4410 GstIteratorResyncFunction resync; 4411 /** 4412 * The function to call when the iterator is freed 4413 */ 4414 GstIteratorFreeFunction free; 4415 /** 4416 * The iterator that is currently pushed with gst_iterator_push() 4417 */ 4418 GstIterator* pushed; 4419 /** 4420 * The type of the object that this iterator will return 4421 */ 4422 GType type; 4423 /** 4424 * The lock protecting the data structure and the cookie. 4425 */ 4426 GMutex* lock; 4427 /** 4428 * The cookie; the value of the master_cookie when this iterator was 4429 * created. 4430 */ 4431 uint cookie; 4432 /** 4433 * A pointer to the master cookie. 4434 */ 4435 uint* masterCookie; 4436 /** 4437 * the size of the iterator 4438 */ 4439 uint size; 4440 void*[4] GstReserved; 4441 } 4442 4443 /** 4444 * A structure containing the result of a map operation such as 4445 * gst_memory_map(). It contains the data and size. 4446 */ 4447 struct GstMapInfo 4448 { 4449 /** 4450 * a pointer to the mapped memory 4451 */ 4452 GstMemory* memory; 4453 /** 4454 * flags used when mapping the memory 4455 */ 4456 GstMapFlags flags; 4457 /** 4458 * a pointer to the mapped data 4459 */ 4460 ubyte* data; 4461 /** 4462 * the valid size in @data 4463 */ 4464 size_t size; 4465 /** 4466 * the maximum bytes in @data 4467 */ 4468 size_t maxsize; 4469 /** 4470 * extra private user_data that the implementation of the memory 4471 * can use to store extra info. 4472 */ 4473 void*[4] userData; 4474 void*[4] GstReserved; 4475 } 4476 4477 struct GstMemory 4478 { 4479 /** 4480 * parent structure 4481 */ 4482 GstMiniObject miniObject; 4483 /** 4484 * pointer to the #GstAllocator 4485 */ 4486 GstAllocator* allocator; 4487 /** 4488 * parent memory block 4489 */ 4490 GstMemory* parent; 4491 /** 4492 * the maximum size allocated 4493 */ 4494 size_t maxsize; 4495 /** 4496 * the alignment of the memory 4497 */ 4498 size_t alig; 4499 /** 4500 * the offset where valid data starts 4501 */ 4502 size_t offset; 4503 /** 4504 * the size of valid data 4505 */ 4506 size_t size; 4507 } 4508 4509 struct GstMessage 4510 { 4511 /** 4512 * the parent structure 4513 */ 4514 GstMiniObject miniObject; 4515 /** 4516 * the #GstMessageType of the message 4517 */ 4518 GstMessageType type; 4519 /** 4520 * the timestamp of the message 4521 */ 4522 ulong timestamp; 4523 /** 4524 * the src of the message 4525 */ 4526 GstObject* src; 4527 /** 4528 * the sequence number of the message 4529 */ 4530 uint seqnum; 4531 GMutex lock; 4532 GCond cond; 4533 } 4534 4535 /** 4536 * The #GstMeta structure should be included as the first member of a #GstBuffer 4537 * metadata structure. The structure defines the API of the metadata and should 4538 * be accessible to all elements using the metadata. 4539 * 4540 * A metadata API is registered with gst_meta_api_type_register() which takes a 4541 * name for the metadata API and some tags associated with the metadata. 4542 * With gst_meta_api_type_has_tag() one can check if a certain metadata API 4543 * contains a given tag. 4544 * 4545 * Multiple implementations of a metadata API can be registered. 4546 * To implement a metadata API, gst_meta_register() should be used. This 4547 * function takes all parameters needed to create, free and transform metadata 4548 * along with the size of the metadata. The function returns a #GstMetaInfo 4549 * structure that contains the information for the implementation of the API. 4550 * 4551 * A specific implementation can be retrieved by name with gst_meta_get_info(). 4552 * 4553 * See #GstBuffer for how the metadata can be added, retrieved and removed from 4554 * buffers. 4555 */ 4556 struct GstMeta 4557 { 4558 /** 4559 * extra flags for the metadata 4560 */ 4561 GstMetaFlags flags; 4562 /** 4563 * pointer to the #GstMetaInfo 4564 */ 4565 GstMetaInfo* info; 4566 } 4567 4568 /** 4569 * The #GstMetaInfo provides information about a specific metadata 4570 * structure. 4571 */ 4572 struct GstMetaInfo 4573 { 4574 /** 4575 * tag identifying the metadata structure and api 4576 */ 4577 GType api; 4578 /** 4579 * type identifying the implementor of the api 4580 */ 4581 GType type; 4582 /** 4583 * size of the metadata 4584 */ 4585 size_t size; 4586 /** 4587 * function for initializing the metadata 4588 */ 4589 GstMetaInitFunction initFunc; 4590 /** 4591 * function for freeing the metadata 4592 */ 4593 GstMetaFreeFunction freeFunc; 4594 /** 4595 * function for transforming the metadata 4596 */ 4597 GstMetaTransformFunction transformFunc; 4598 } 4599 4600 /** 4601 * Extra data passed to a "gst-copy" transform #GstMetaTransformFunction. 4602 */ 4603 struct GstMetaTransformCopy 4604 { 4605 /** 4606 * %TRUE if only region is copied 4607 */ 4608 bool region; 4609 /** 4610 * the offset to copy, 0 if @region is %FALSE, otherwise > 0 4611 */ 4612 size_t offset; 4613 /** 4614 * the size to copy, -1 or the buffer size when @region is %FALSE 4615 */ 4616 size_t size; 4617 } 4618 4619 struct GstMiniObject 4620 { 4621 /** 4622 * the GType of the object 4623 */ 4624 GType type; 4625 /** 4626 * atomic refcount 4627 */ 4628 int refcount; 4629 /** 4630 * atomic state of the locks 4631 */ 4632 int lockstate; 4633 /** 4634 * extra flags. 4635 */ 4636 uint flags; 4637 /** 4638 * a copy function 4639 */ 4640 GstMiniObjectCopyFunction copy; 4641 /** 4642 * a dispose function 4643 */ 4644 GstMiniObjectDisposeFunction dispose; 4645 /** 4646 * the free function 4647 */ 4648 GstMiniObjectFreeFunction free; 4649 uint nQdata; 4650 void* qdata; 4651 } 4652 4653 struct GstObject 4654 { 4655 GObject object; 4656 /** 4657 * object LOCK 4658 */ 4659 GMutex lock; 4660 /** 4661 * The name of the object 4662 */ 4663 char* name; 4664 /** 4665 * this object's parent, weak ref 4666 */ 4667 GstObject* parent; 4668 /** 4669 * flags for this object 4670 */ 4671 uint flags; 4672 GList* controlBindings; 4673 ulong controlRate; 4674 ulong lastSync; 4675 void* GstReserved; 4676 } 4677 4678 /** 4679 * GStreamer base object class. 4680 */ 4681 struct GstObjectClass 4682 { 4683 /** 4684 * parent 4685 */ 4686 GObjectClass parentClass; 4687 /** 4688 * separator used by gst_object_get_path_string() 4689 */ 4690 const(char)* pathStringSeparator; 4691 /** */ 4692 extern(C) void function(GstObject* object, GstObject* orig, GParamSpec* pspec) deepNotify; 4693 void*[4] GstReserved; 4694 } 4695 4696 struct GstPad 4697 { 4698 GstObject object; 4699 /** 4700 * private data owned by the parent element 4701 */ 4702 void* elementPrivate; 4703 /** 4704 * padtemplate for this pad 4705 */ 4706 GstPadTemplate* padtemplate; 4707 /** 4708 * the direction of the pad, cannot change after creating 4709 * the pad. 4710 */ 4711 GstPadDirection direction; 4712 GRecMutex streamRecLock; 4713 GstTask* task; 4714 GCond blockCond; 4715 GHookList probes; 4716 GstPadMode mode; 4717 GstPadActivateFunction activatefunc; 4718 void* activatedata; 4719 GDestroyNotify activatenotify; 4720 GstPadActivateModeFunction activatemodefunc; 4721 void* activatemodedata; 4722 GDestroyNotify activatemodenotify; 4723 GstPad* peer; 4724 GstPadLinkFunction linkfunc; 4725 void* linkdata; 4726 GDestroyNotify linknotify; 4727 GstPadUnlinkFunction unlinkfunc; 4728 void* unlinkdata; 4729 GDestroyNotify unlinknotify; 4730 GstPadChainFunction chainfunc; 4731 void* chaindata; 4732 GDestroyNotify chainnotify; 4733 GstPadChainListFunction chainlistfunc; 4734 void* chainlistdata; 4735 GDestroyNotify chainlistnotify; 4736 GstPadGetRangeFunction getrangefunc; 4737 void* getrangedata; 4738 GDestroyNotify getrangenotify; 4739 GstPadEventFunction eventfunc; 4740 void* eventdata; 4741 GDestroyNotify eventnotify; 4742 long offset; 4743 GstPadQueryFunction queryfunc; 4744 void* querydata; 4745 GDestroyNotify querynotify; 4746 GstPadIterIntLinkFunction iterintlinkfunc; 4747 void* iterintlinkdata; 4748 GDestroyNotify iterintlinknotify; 4749 int numProbes; 4750 int numBlocked; 4751 GstPadPrivate* priv; 4752 union ABI 4753 { 4754 void*[4] GstReserved; 4755 struct Abi 4756 { 4757 GstFlowReturn lastFlowret; 4758 GstPadEventFullFunction eventfullfunc; 4759 } 4760 Abi abi; 4761 } 4762 ABI abi; 4763 } 4764 4765 struct GstPadClass 4766 { 4767 GstObjectClass parentClass; 4768 /** */ 4769 extern(C) void function(GstPad* pad, GstPad* peer) linked; 4770 /** */ 4771 extern(C) void function(GstPad* pad, GstPad* peer) unlinked; 4772 void*[4] GstReserved; 4773 } 4774 4775 struct GstPadPrivate; 4776 4777 struct GstPadProbeInfo 4778 { 4779 /** 4780 * the current probe type 4781 */ 4782 GstPadProbeType type; 4783 /** 4784 * the id of the probe 4785 */ 4786 gulong id; 4787 /** 4788 * type specific data, check the @type field to know the 4789 * datatype. This field can be %NULL. 4790 */ 4791 void* data; 4792 /** 4793 * offset of pull probe, this field is valid when @type contains 4794 * #GST_PAD_PROBE_TYPE_PULL 4795 */ 4796 ulong offset; 4797 /** 4798 * size of pull probe, this field is valid when @type contains 4799 * #GST_PAD_PROBE_TYPE_PULL 4800 */ 4801 uint size; 4802 union ABI 4803 { 4804 void*[4] GstReserved; 4805 struct Abi 4806 { 4807 GstFlowReturn flowRet; 4808 } 4809 Abi abi; 4810 } 4811 ABI abi; 4812 } 4813 4814 struct GstPadTemplate 4815 { 4816 GstObject object; 4817 char* nameTemplate; 4818 GstPadDirection direction; 4819 GstPadPresence presence; 4820 GstCaps* caps; 4821 union ABI 4822 { 4823 void*[4] GstReserved; 4824 struct Abi 4825 { 4826 GType gtype; 4827 } 4828 Abi abi; 4829 } 4830 ABI abi; 4831 } 4832 4833 struct GstPadTemplateClass 4834 { 4835 GstObjectClass parentClass; 4836 /** */ 4837 extern(C) void function(GstPadTemplate* templ, GstPad* pad) padCreated; 4838 void*[4] GstReserved; 4839 } 4840 4841 struct GstParamArray; 4842 4843 struct GstParamFraction; 4844 4845 /** 4846 * A GParamSpec derived structure that contains the meta data for fractional 4847 * properties. 4848 */ 4849 struct GstParamSpecArray 4850 { 4851 /** 4852 * super class 4853 */ 4854 GParamSpec parentInstance; 4855 GParamSpec* elementSpec; 4856 } 4857 4858 /** 4859 * A GParamSpec derived structure that contains the meta data for fractional 4860 * properties. 4861 */ 4862 struct GstParamSpecFraction 4863 { 4864 /** 4865 * super class 4866 */ 4867 GParamSpec parentInstance; 4868 /** 4869 * minimal numerator 4870 */ 4871 int minNum; 4872 /** 4873 * minimal denominator 4874 */ 4875 int minDen; 4876 /** 4877 * maximal numerator 4878 */ 4879 int maxNum; 4880 /** 4881 * maximal denominator 4882 */ 4883 int maxDen; 4884 /** 4885 * default numerator 4886 */ 4887 int defNum; 4888 /** 4889 * default denominator 4890 */ 4891 int defDen; 4892 } 4893 4894 /** 4895 * The #GstParentBufferMeta is a #GstMeta which can be attached to a #GstBuffer 4896 * to hold a reference to another buffer that is only released when the child 4897 * #GstBuffer is released. 4898 * 4899 * Typically, #GstParentBufferMeta is used when the child buffer is directly 4900 * using the #GstMemory of the parent buffer, and wants to prevent the parent 4901 * buffer from being returned to a buffer pool until the #GstMemory is available 4902 * for re-use. 4903 * 4904 * Since: 1.6 4905 */ 4906 struct GstParentBufferMeta 4907 { 4908 /** 4909 * the parent #GstMeta structure 4910 */ 4911 GstMeta parent; 4912 /** 4913 * the #GstBuffer on which a reference is being held. 4914 */ 4915 GstBuffer* buffer; 4916 } 4917 4918 struct GstParseContext; 4919 4920 struct GstPipeline 4921 { 4922 GstBin bin; 4923 /** 4924 * The fixed clock of the pipeline, used when 4925 * GST_PIPELINE_FLAG_FIXED_CLOCK is set. 4926 */ 4927 GstClock* fixedClock; 4928 /** 4929 * The stream time of the pipeline. A better name for this 4930 * property would be the running_time, the total time spent in the 4931 * PLAYING state without being flushed. (deprecated, use the start_time 4932 * on GstElement). 4933 */ 4934 GstClockTime streamTime; 4935 /** 4936 * Extra delay added to base_time to compensate for computing delays 4937 * when setting elements to PLAYING. 4938 */ 4939 GstClockTime delay; 4940 GstPipelinePrivate* priv; 4941 void*[4] GstReserved; 4942 } 4943 4944 struct GstPipelineClass 4945 { 4946 GstBinClass parentClass; 4947 void*[4] GstReserved; 4948 } 4949 4950 struct GstPipelinePrivate; 4951 4952 struct GstPlugin; 4953 4954 struct GstPluginClass; 4955 4956 /** 4957 * A plugin should export a variable of this type called plugin_desc. The plugin 4958 * loader will use the data provided there to initialize the plugin. 4959 * 4960 * The @licence parameter must be one of: LGPL, GPL, QPL, GPL/QPL, MPL, 4961 * BSD, MIT/X11, Proprietary, unknown. 4962 */ 4963 struct GstPluginDesc 4964 { 4965 /** 4966 * the major version number of core that plugin was compiled for 4967 */ 4968 int majorVersion; 4969 /** 4970 * the minor version number of core that plugin was compiled for 4971 */ 4972 int minorVersion; 4973 /** 4974 * a unique name of the plugin 4975 */ 4976 const(char)* name; 4977 /** 4978 * description of plugin 4979 */ 4980 const(char)* description; 4981 /** 4982 * pointer to the init function of this plugin. 4983 */ 4984 GstPluginInitFunc pluginInit; 4985 /** 4986 * version of the plugin 4987 */ 4988 const(char)* versio; 4989 /** 4990 * effective license of plugin 4991 */ 4992 const(char)* license; 4993 /** 4994 * source module plugin belongs to 4995 */ 4996 const(char)* source; 4997 /** 4998 * shipped package plugin belongs to 4999 */ 5000 const(char)* p; 5001 /** 5002 * URL to provider of plugin 5003 */ 5004 const(char)* origin; 5005 /** 5006 * date time string in ISO 8601 5007 * format (or rather, a subset thereof), or %NULL. Allowed are the 5008 * following formats: "YYYY-MM-DD" and "YYY-MM-DDTHH:MMZ" (with 5009 * 'T' a separator and 'Z' indicating UTC/Zulu time). This field 5010 * should be set via the GST_PACKAGE_RELEASE_DATETIME 5011 * preprocessor macro. 5012 */ 5013 const(char)* releaseDatetime; 5014 void*[4] GstReserved; 5015 } 5016 5017 struct GstPluginFeature; 5018 5019 struct GstPluginFeatureClass; 5020 5021 struct GstPoll; 5022 5023 struct GstPollFD 5024 { 5025 /** 5026 * a file descriptor 5027 */ 5028 int fd; 5029 int idx; 5030 } 5031 5032 struct GstPreset; 5033 5034 /** 5035 * #GstPreset interface. 5036 */ 5037 struct GstPresetInterface 5038 { 5039 /** 5040 * parent interface type. 5041 */ 5042 GTypeInterface parent; 5043 /** 5044 * 5045 * Params: 5046 * preset = a #GObject that implements #GstPreset 5047 * Returns: list with names, use g_strfreev() after usage. 5048 */ 5049 extern(C) char** function(GstPreset* preset) getPresetNames; 5050 /** 5051 * 5052 * Params: 5053 * preset = a #GObject that implements #GstPreset 5054 * Returns: an 5055 * array of property names which should be freed with g_strfreev() after use. 5056 */ 5057 extern(C) char** function(GstPreset* preset) getPropertyNames; 5058 /** 5059 * 5060 * Params: 5061 * preset = a #GObject that implements #GstPreset 5062 * name = preset name to load 5063 * Returns: %TRUE for success, %FALSE if e.g. there is no preset with that @name 5064 */ 5065 extern(C) int function(GstPreset* preset, const(char)* name) loadPreset; 5066 /** 5067 * 5068 * Params: 5069 * preset = a #GObject that implements #GstPreset 5070 * name = preset name to save 5071 * Returns: %TRUE for success, %FALSE 5072 */ 5073 extern(C) int function(GstPreset* preset, const(char)* name) savePreset; 5074 /** 5075 * 5076 * Params: 5077 * preset = a #GObject that implements #GstPreset 5078 * oldName = current preset name 5079 * newName = new preset name 5080 * Returns: %TRUE for success, %FALSE if e.g. there is no preset with @old_name 5081 */ 5082 extern(C) int function(GstPreset* preset, const(char)* oldName, const(char)* newName) renamePreset; 5083 /** 5084 * 5085 * Params: 5086 * preset = a #GObject that implements #GstPreset 5087 * name = preset name to remove 5088 * Returns: %TRUE for success, %FALSE if e.g. there is no preset with that @name 5089 */ 5090 extern(C) int function(GstPreset* preset, const(char)* name) deletePreset; 5091 /** 5092 * 5093 * Params: 5094 * preset = a #GObject that implements #GstPreset 5095 * name = preset name 5096 * tag = meta data item name 5097 * value = new value 5098 * Returns: %TRUE for success, %FALSE if e.g. there is no preset with that @name 5099 */ 5100 extern(C) int function(GstPreset* preset, const(char)* name, const(char)* tag, const(char)* value) setMeta; 5101 /** 5102 * 5103 * Params: 5104 * preset = a #GObject that implements #GstPreset 5105 * name = preset name 5106 * tag = meta data item name 5107 * value = value 5108 * Returns: %TRUE for success, %FALSE if e.g. there is no preset with that @name 5109 * or no value for the given @tag 5110 */ 5111 extern(C) int function(GstPreset* preset, const(char)* name, const(char)* tag, char** value) getMeta; 5112 void*[4] GstReserved; 5113 } 5114 5115 struct GstPromise 5116 { 5117 /** 5118 * parent #GstMiniObject 5119 */ 5120 GstMiniObject parent; 5121 } 5122 5123 /** 5124 * Metadata type that holds information about a sample from a protection-protected 5125 * track, including the information needed to decrypt it (if it is encrypted). 5126 * 5127 * Since: 1.6 5128 */ 5129 struct GstProtectionMeta 5130 { 5131 /** 5132 * the parent #GstMeta. 5133 */ 5134 GstMeta meta; 5135 /** 5136 * the cryptographic information needed to decrypt the sample. 5137 */ 5138 GstStructure* info; 5139 } 5140 5141 struct GstProxyPad 5142 { 5143 GstPad pad; 5144 GstProxyPadPrivate* priv; 5145 } 5146 5147 struct GstProxyPadClass 5148 { 5149 GstPadClass parentClass; 5150 void*[1] GstReserved; 5151 } 5152 5153 struct GstProxyPadPrivate; 5154 5155 struct GstQuery 5156 { 5157 /** 5158 * The parent #GstMiniObject type 5159 */ 5160 GstMiniObject miniObject; 5161 /** 5162 * the #GstQueryType 5163 */ 5164 GstQueryType type; 5165 } 5166 5167 /** 5168 * #GstReferenceTimestampMeta can be used to attach alternative timestamps and 5169 * possibly durations to a #GstBuffer. These are generally not according to 5170 * the pipeline clock and could be e.g. the NTP timestamp when the media was 5171 * captured. 5172 * 5173 * The reference is stored as a #GstCaps in @reference. Examples of valid 5174 * references would be "timestamp/x-drivername-stream" for timestamps that are locally 5175 * generated by some driver named "drivername" when generating the stream, 5176 * e.g. based on a frame counter, or "timestamp/x-ntp, host=pool.ntp.org, 5177 * port=123" for timestamps based on a specific NTP server. 5178 * 5179 * Since: 1.14 5180 */ 5181 struct GstReferenceTimestampMeta 5182 { 5183 /** 5184 * the parent #GstMeta structure 5185 */ 5186 GstMeta parent; 5187 /** 5188 * identifier for the timestamp reference. 5189 */ 5190 GstCaps* reference; 5191 /** 5192 * timestamp 5193 */ 5194 GstClockTime timestamp; 5195 /** 5196 * duration, or %GST_CLOCK_TIME_NONE 5197 */ 5198 GstClockTime duration; 5199 } 5200 5201 struct GstRegistry 5202 { 5203 GstObject object; 5204 GstRegistryPrivate* priv; 5205 } 5206 5207 struct GstRegistryClass 5208 { 5209 GstObjectClass parentClass; 5210 } 5211 5212 struct GstRegistryPrivate; 5213 5214 struct GstSample; 5215 5216 struct GstSegment 5217 { 5218 /** 5219 * flags for this segment 5220 */ 5221 GstSegmentFlags flags; 5222 /** 5223 * the playback rate of the segment 5224 */ 5225 double rate; 5226 /** 5227 * the already applied rate to the segment 5228 */ 5229 double appliedRate; 5230 /** 5231 * the format of the segment values 5232 */ 5233 GstFormat format; 5234 /** 5235 * the running time (plus elapsed time, see offset) of the segment start 5236 */ 5237 ulong base; 5238 /** 5239 * the amount (in buffer timestamps) that has already been elapsed in 5240 * the segment 5241 */ 5242 ulong offset; 5243 /** 5244 * the start of the segment in buffer timestamp time (PTS) 5245 */ 5246 ulong start; 5247 /** 5248 * the stop of the segment in buffer timestamp time (PTS) 5249 */ 5250 ulong stop; 5251 /** 5252 * the stream time of the segment start 5253 */ 5254 ulong time; 5255 /** 5256 * the buffer timestamp position in the segment (used internally by 5257 * elements such as sources, demuxers or parsers to track progress) 5258 */ 5259 ulong position; 5260 /** 5261 * the duration of the stream 5262 */ 5263 ulong duration; 5264 void*[4] GstReserved; 5265 } 5266 5267 struct GstStaticCaps 5268 { 5269 /** 5270 * the cached #GstCaps 5271 */ 5272 GstCaps* caps; 5273 /** 5274 * a string describing a caps 5275 */ 5276 const(char)* str; 5277 void*[4] GstReserved; 5278 } 5279 5280 struct GstStaticPadTemplate 5281 { 5282 /** 5283 * the name of the template 5284 */ 5285 const(char)* nameTemplate; 5286 /** 5287 * the direction of the template 5288 */ 5289 GstPadDirection direction; 5290 /** 5291 * the presence of the template 5292 */ 5293 GstPadPresence presence; 5294 /** 5295 * the caps of the template. 5296 */ 5297 GstStaticCaps staticCaps; 5298 } 5299 5300 struct GstStream 5301 { 5302 GstObject object; 5303 /** 5304 * The Stream Identifier for this #GstStream 5305 */ 5306 const(char)* streamId; 5307 GstStreamPrivate* priv; 5308 void*[4] GstReserved; 5309 } 5310 5311 /** 5312 * GstStream class structure 5313 */ 5314 struct GstStreamClass 5315 { 5316 /** 5317 * the parent class structure 5318 */ 5319 GstObjectClass parentClass; 5320 void*[4] GstReserved; 5321 } 5322 5323 struct GstStreamCollection 5324 { 5325 GstObject object; 5326 char* upstreamId; 5327 GstStreamCollectionPrivate* priv; 5328 void*[4] GstReserved; 5329 } 5330 5331 /** 5332 * GstStreamCollection class structure 5333 */ 5334 struct GstStreamCollectionClass 5335 { 5336 /** 5337 * the parent class structure 5338 */ 5339 GstObjectClass parentClass; 5340 /** */ 5341 extern(C) void function(GstStreamCollection* collection, GstStream* stream, GParamSpec* pspec) streamNotify; 5342 void*[4] GstReserved; 5343 } 5344 5345 struct GstStreamCollectionPrivate; 5346 5347 struct GstStreamPrivate; 5348 5349 struct GstStructure 5350 { 5351 /** 5352 * the GType of a structure 5353 */ 5354 GType type; 5355 GQuark name; 5356 } 5357 5358 struct GstSystemClock 5359 { 5360 GstClock clock; 5361 GstSystemClockPrivate* priv; 5362 void*[4] GstReserved; 5363 } 5364 5365 struct GstSystemClockClass 5366 { 5367 GstClockClass parentClass; 5368 void*[4] GstReserved; 5369 } 5370 5371 struct GstSystemClockPrivate; 5372 5373 struct GstTagList 5374 { 5375 /** 5376 * the parent type 5377 */ 5378 GstMiniObject miniObject; 5379 } 5380 5381 struct GstTagSetter; 5382 5383 /** 5384 * #GstTagSetterInterface interface. 5385 */ 5386 struct GstTagSetterInterface 5387 { 5388 /** 5389 * parent interface type. 5390 */ 5391 GTypeInterface gIface; 5392 } 5393 5394 struct GstTask 5395 { 5396 GstObject object; 5397 /** 5398 * the state of the task 5399 */ 5400 GstTaskState state; 5401 /** 5402 * used to pause/resume the task 5403 */ 5404 GCond cond; 5405 /** 5406 * The lock taken when iterating the task function 5407 */ 5408 GRecMutex* lock; 5409 /** 5410 * the function executed by this task 5411 */ 5412 GstTaskFunction func; 5413 /** 5414 * user_data passed to the task function 5415 */ 5416 void* userData; 5417 /** 5418 * GDestroyNotify for @user_data 5419 */ 5420 GDestroyNotify notify; 5421 /** 5422 * a flag indicating that the task is running 5423 */ 5424 bool running; 5425 GThread* thread; 5426 GstTaskPrivate* priv; 5427 void*[4] GstReserved; 5428 } 5429 5430 struct GstTaskClass 5431 { 5432 GstObjectClass parentClass; 5433 GstTaskPool* pool; 5434 void*[4] GstReserved; 5435 } 5436 5437 struct GstTaskPool 5438 { 5439 GstObject object; 5440 GThreadPool* pool; 5441 void*[4] GstReserved; 5442 } 5443 5444 /** 5445 * The #GstTaskPoolClass object. 5446 */ 5447 struct GstTaskPoolClass 5448 { 5449 /** 5450 * the parent class structure 5451 */ 5452 GstObjectClass parentClass; 5453 /** */ 5454 extern(C) void function(GstTaskPool* pool, GError** err) prepare; 5455 /** */ 5456 extern(C) void function(GstTaskPool* pool) cleanup; 5457 /** 5458 * 5459 * Params: 5460 * pool = a #GstTaskPool 5461 * func = the function to call 5462 * userData = data to pass to @func 5463 * Returns: a pointer that should be used 5464 * for the gst_task_pool_join function. This pointer can be %NULL, you 5465 * must check @error to detect errors. 5466 * 5467 * Throws: GException on failure. 5468 */ 5469 extern(C) void* function(GstTaskPool* pool, GstTaskPoolFunction func, void* userData, GError** err) push; 5470 /** */ 5471 extern(C) void function(GstTaskPool* pool, void* id) join; 5472 void*[4] GstReserved; 5473 } 5474 5475 struct GstTaskPrivate; 5476 5477 /** 5478 * Structure for saving a timestamp and a value. 5479 */ 5480 struct GstTimedValue 5481 { 5482 /** 5483 * timestamp of the value change 5484 */ 5485 GstClockTime timestamp; 5486 /** 5487 * the corresponding value 5488 */ 5489 double value; 5490 } 5491 5492 struct GstToc; 5493 5494 struct GstTocEntry; 5495 5496 struct GstTocSetter; 5497 5498 /** 5499 * #GstTocSetterInterface interface. 5500 */ 5501 struct GstTocSetterInterface 5502 { 5503 /** 5504 * parent interface type. 5505 */ 5506 GTypeInterface gIface; 5507 } 5508 5509 struct GstTracer 5510 { 5511 GstObject parent; 5512 GstTracerPrivate* priv; 5513 void*[4] GstReserved; 5514 } 5515 5516 struct GstTracerClass 5517 { 5518 GstObjectClass parentClass; 5519 void*[4] GstReserved; 5520 } 5521 5522 struct GstTracerFactory; 5523 5524 struct GstTracerFactoryClass; 5525 5526 struct GstTracerPrivate; 5527 5528 struct GstTracerRecord; 5529 5530 struct GstTracerRecordClass; 5531 5532 struct GstTypeFind 5533 { 5534 /** */ 5535 extern(C) ubyte* function(void* data, long offset, uint size) peek; 5536 /** */ 5537 extern(C) void function(void* data, uint probability, GstCaps* caps) suggest; 5538 /** 5539 * The data used by the caller of the typefinding function. 5540 */ 5541 void* data; 5542 /** */ 5543 extern(C) ulong function(void* data) getLength; 5544 void*[4] GstReserved; 5545 } 5546 5547 struct GstTypeFindFactory; 5548 5549 struct GstTypeFindFactoryClass; 5550 5551 struct GstURIHandler; 5552 5553 /** 5554 * Any #GstElement using this interface should implement these methods. 5555 */ 5556 struct GstURIHandlerInterface 5557 { 5558 /** 5559 * The parent interface type 5560 */ 5561 GTypeInterface parent; 5562 /** */ 5563 extern(C) GstURIType function(GType type) getType; 5564 /** */ 5565 extern(C) char** function(GType type) getProtocols; 5566 /** 5567 * 5568 * Params: 5569 * handler = A #GstURIHandler 5570 * Returns: the URI currently handled by 5571 * the @handler. Returns %NULL if there are no URI currently 5572 * handled. The returned string must be freed with g_free() when no 5573 * longer needed. 5574 */ 5575 extern(C) char* function(GstURIHandler* handler) getUri; 5576 /** 5577 * 5578 * Params: 5579 * handler = A #GstURIHandler 5580 * uri = URI to set 5581 * Returns: %TRUE if the URI was set successfully, else %FALSE. 5582 * 5583 * Throws: GException on failure. 5584 */ 5585 extern(C) int function(GstURIHandler* handler, const(char)* uri, GError** err) setUri; 5586 } 5587 5588 struct GstUri; 5589 5590 struct GstValueArray; 5591 5592 struct GstValueList; 5593 5594 /** 5595 * VTable for the #GValue @type. 5596 */ 5597 struct GstValueTable 5598 { 5599 /** 5600 * a #GType 5601 */ 5602 GType type; 5603 /** 5604 * a #GstValueCompareFunc 5605 */ 5606 GstValueCompareFunc compare; 5607 /** 5608 * a #GstValueSerializeFunc 5609 */ 5610 GstValueSerializeFunc serialize; 5611 /** 5612 * a #GstValueDeserializeFunc 5613 */ 5614 GstValueDeserializeFunc deserialize; 5615 void*[4] GstReserved; 5616 } 5617 5618 /** 5619 * A function that will be called from gst_buffer_foreach_meta(). The @meta 5620 * field will point to a the reference of the meta. 5621 * 5622 * @buffer should not be modified from this callback. 5623 * 5624 * When this function returns %TRUE, the next meta will be 5625 * returned. When %FALSE is returned, gst_buffer_foreach_meta() will return. 5626 * 5627 * When @meta is set to %NULL, the item will be removed from the buffer. 5628 * 5629 * Params: 5630 * buffer = a #GstBuffer 5631 * meta = a pointer to a #GstMeta 5632 * userData = user data passed to gst_buffer_foreach_meta() 5633 * 5634 * Returns: %FALSE when gst_buffer_foreach_meta() should stop 5635 */ 5636 public alias extern(C) int function(GstBuffer* buffer, GstMeta** meta, void* userData) GstBufferForeachMetaFunc; 5637 5638 /** 5639 * A function that will be called from gst_buffer_list_foreach(). The @buffer 5640 * field will point to a the reference of the buffer at @idx. 5641 * 5642 * When this function returns %TRUE, the next buffer will be 5643 * returned. When %FALSE is returned, gst_buffer_list_foreach() will return. 5644 * 5645 * When @buffer is set to %NULL, the item will be removed from the bufferlist. 5646 * When @buffer has been made writable, the new buffer reference can be assigned 5647 * to @buffer. This function is responsible for unreffing the old buffer when 5648 * removing or modifying. 5649 * 5650 * Params: 5651 * buffer = pointer the buffer 5652 * idx = the index of @buffer 5653 * userData = user data passed to gst_buffer_list_foreach() 5654 * 5655 * Returns: %FALSE when gst_buffer_list_foreach() should stop 5656 */ 5657 public alias extern(C) int function(GstBuffer** buffer, uint idx, void* userData) GstBufferListFunc; 5658 5659 /** 5660 * Specifies the type of function passed to gst_bus_add_watch() or 5661 * gst_bus_add_watch_full(), which is called from the mainloop when a message 5662 * is available on the bus. 5663 * 5664 * The message passed to the function will be unreffed after execution of this 5665 * function so it should not be freed in the function. 5666 * 5667 * Note that this function is used as a GSourceFunc which means that returning 5668 * %FALSE will remove the GSource from the mainloop. 5669 * 5670 * Params: 5671 * bus = the #GstBus that sent the message 5672 * message = the #GstMessage 5673 * userData = user data that has been given, when registering the handler 5674 * 5675 * Returns: %FALSE if the event source should be removed. 5676 */ 5677 public alias extern(C) int function(GstBus* bus, GstMessage* message, void* userData) GstBusFunc; 5678 5679 /** 5680 * Handler will be invoked synchronously, when a new message has been injected 5681 * into the bus. This function is mostly used internally. Only one sync handler 5682 * can be attached to a given bus. 5683 * 5684 * If the handler returns GST_BUS_DROP, it should unref the message, else the 5685 * message should not be unreffed by the sync handler. 5686 * 5687 * Params: 5688 * bus = the #GstBus that sent the message 5689 * message = the #GstMessage 5690 * userData = user data that has been given, when registering the handler 5691 * 5692 * Returns: #GstBusSyncReply stating what to do with the message 5693 */ 5694 public alias extern(C) GstBusSyncReply function(GstBus* bus, GstMessage* message, void* userData) GstBusSyncHandler; 5695 5696 /** 5697 * A function that will be called in gst_caps_filter_and_map_in_place(). 5698 * The function may modify @features and @structure, and both will be 5699 * removed from the caps if %FALSE is returned. 5700 * 5701 * Params: 5702 * features = the #GstCapsFeatures 5703 * structure = the #GstStructure 5704 * userData = user data 5705 * 5706 * Returns: %TRUE if the features and structure should be preserved, 5707 * %FALSE if it should be removed. 5708 */ 5709 public alias extern(C) int function(GstCapsFeatures* features, GstStructure* structure, void* userData) GstCapsFilterMapFunc; 5710 5711 /** 5712 * A function that will be called in gst_caps_foreach(). The function may 5713 * not modify @features or @structure. 5714 * 5715 * Params: 5716 * features = the #GstCapsFeatures 5717 * structure = the #GstStructure 5718 * userData = user data 5719 * 5720 * Returns: %TRUE if the foreach operation should continue, %FALSE if 5721 * the foreach operation should stop with %FALSE. 5722 * 5723 * Since: 1.6 5724 */ 5725 public alias extern(C) int function(GstCapsFeatures* features, GstStructure* structure, void* userData) GstCapsForeachFunc; 5726 5727 /** 5728 * A function that will be called in gst_caps_map_in_place(). The function 5729 * may modify @features and @structure. 5730 * 5731 * Params: 5732 * features = the #GstCapsFeatures 5733 * structure = the #GstStructure 5734 * userData = user data 5735 * 5736 * Returns: %TRUE if the map operation should continue, %FALSE if 5737 * the map operation should stop with %FALSE. 5738 */ 5739 public alias extern(C) int function(GstCapsFeatures* features, GstStructure* structure, void* userData) GstCapsMapFunc; 5740 5741 /** 5742 * The function prototype of the callback. 5743 * 5744 * Params: 5745 * clock = The clock that triggered the callback 5746 * time = The time it was triggered 5747 * id = The #GstClockID that expired 5748 * userData = user data passed in the gst_clock_id_wait_async() function 5749 * 5750 * Returns: %TRUE or %FALSE (currently unused) 5751 */ 5752 public alias extern(C) int function(GstClock* clock, GstClockTime time, GstClockID id, void* userData) GstClockCallback; 5753 5754 /** */ 5755 public alias extern(C) void function(GstControlBinding* binding, double srcValue, GValue* destValue) GstControlBindingConvert; 5756 5757 /** 5758 * Function for returning a value for a given timestamp. 5759 * 5760 * Params: 5761 * self = the #GstControlSource instance 5762 * timestamp = timestamp for which a value should be calculated 5763 * value = a value which will be set to the result. 5764 * 5765 * Returns: %TRUE if the value was successfully calculated. 5766 */ 5767 public alias extern(C) int function(GstControlSource* self, GstClockTime timestamp, double* value) GstControlSourceGetValue; 5768 5769 /** 5770 * Function for returning an array of values for starting at a given timestamp. 5771 * 5772 * Params: 5773 * self = the #GstControlSource instance 5774 * timestamp = timestamp for which a value should be calculated 5775 * interval = the time spacing between subsequent values 5776 * nValues = the number of values 5777 * values = array to put control-values in 5778 * 5779 * Returns: %TRUE if the values were successfully calculated. 5780 */ 5781 public alias extern(C) int function(GstControlSource* self, GstClockTime timestamp, GstClockTime interval, uint nValues, double* values) GstControlSourceGetValueArray; 5782 5783 /** */ 5784 public alias extern(C) void function() GstDebugFuncPtr; 5785 5786 /** */ 5787 public alias extern(C) void function(GstElement* element, void* userData) GstElementCallAsyncFunc; 5788 5789 /** 5790 * Function called for each pad when using gst_element_foreach_sink_pad(), 5791 * gst_element_foreach_src_pad(), or gst_element_foreach_pad(). 5792 * 5793 * Params: 5794 * element = the #GstElement 5795 * pad = a #GstPad 5796 * userData = user data passed to the foreach function 5797 * 5798 * Returns: %FALSE to stop iterating pads, %TRUE to continue 5799 * 5800 * Since: 1.14 5801 */ 5802 public alias extern(C) int function(GstElement* element, GstPad* pad, void* userData) GstElementForeachPadFunc; 5803 5804 /** 5805 * This function will be called when creating a copy of @it and should 5806 * create a copy of all custom iterator fields or increase their 5807 * reference counts. 5808 * 5809 * Params: 5810 * it = The original iterator 5811 * copy = The copied iterator 5812 */ 5813 public alias extern(C) void function(GstIterator* it, GstIterator* copy) GstIteratorCopyFunction; 5814 5815 /** 5816 * A function to be passed to gst_iterator_fold(). 5817 * 5818 * Params: 5819 * item = the item to fold 5820 * ret = a #GValue collecting the result 5821 * userData = data passed to gst_iterator_fold() 5822 * 5823 * Returns: %TRUE if the fold should continue, %FALSE if it should stop. 5824 */ 5825 public alias extern(C) int function(GValue* item, GValue* ret, void* userData) GstIteratorFoldFunction; 5826 5827 /** 5828 * A function that is called by gst_iterator_foreach() for every element. 5829 * 5830 * Params: 5831 * item = The item 5832 * userData = User data 5833 */ 5834 public alias extern(C) void function(GValue* item, void* userData) GstIteratorForeachFunction; 5835 5836 /** 5837 * This function will be called when the iterator is freed. 5838 * 5839 * Implementors of a #GstIterator should implement this 5840 * function and pass it to the constructor of the custom iterator. 5841 * The function will be called with the iterator lock held. 5842 * 5843 * Params: 5844 * it = the iterator 5845 */ 5846 public alias extern(C) void function(GstIterator* it) GstIteratorFreeFunction; 5847 5848 /** 5849 * The function that will be called after the next item of the iterator 5850 * has been retrieved. This function can be used to skip items or stop 5851 * the iterator. 5852 * 5853 * The function will be called with the iterator lock held. 5854 * 5855 * Params: 5856 * it = the iterator 5857 * item = the item being retrieved. 5858 * 5859 * Returns: the result of the operation. 5860 */ 5861 public alias extern(C) GstIteratorItem function(GstIterator* it, GValue* item) GstIteratorItemFunction; 5862 5863 /** 5864 * The function that will be called when the next element of the iterator 5865 * should be retrieved. 5866 * 5867 * Implementors of a #GstIterator should implement this 5868 * function and pass it to the constructor of the custom iterator. 5869 * The function will be called with the iterator lock held. 5870 * 5871 * Params: 5872 * it = the iterator 5873 * result = a pointer to hold the next item 5874 * 5875 * Returns: the result of the operation. 5876 */ 5877 public alias extern(C) GstIteratorResult function(GstIterator* it, GValue* result) GstIteratorNextFunction; 5878 5879 /** 5880 * This function will be called whenever a concurrent update happened 5881 * to the iterated datastructure. The implementor of the iterator should 5882 * restart the iterator from the beginning and clean up any state it might 5883 * have. 5884 * 5885 * Implementors of a #GstIterator should implement this 5886 * function and pass it to the constructor of the custom iterator. 5887 * The function will be called with the iterator lock held. 5888 * 5889 * Params: 5890 * it = the iterator 5891 */ 5892 public alias extern(C) void function(GstIterator* it) GstIteratorResyncFunction; 5893 5894 /** 5895 * Function prototype for a logging function that can be registered with 5896 * gst_debug_add_log_function(). 5897 * Use G_GNUC_NO_INSTRUMENT on that function. 5898 * 5899 * Params: 5900 * category = a #GstDebugCategory 5901 * level = a #GstDebugLevel 5902 * file = file name 5903 * funct = function name 5904 * line = line number 5905 * object = a #GObject 5906 * message = the message 5907 * userData = user data for the log function 5908 */ 5909 public alias extern(C) void function(GstDebugCategory* category, GstDebugLevel level, const(char)* file, const(char)* funct, int line, GObject* object, GstDebugMessage* message, void* userData) GstLogFunction; 5910 5911 /** 5912 * Copy @size bytes from @mem starting at @offset and return them wrapped in a 5913 * new GstMemory object. 5914 * If @size is set to -1, all bytes starting at @offset are copied. 5915 * 5916 * Params: 5917 * mem = a #GstMemory 5918 * offset = an offset 5919 * size = a size or -1 5920 * 5921 * Returns: a new #GstMemory object wrapping a copy of the requested region in 5922 * @mem. 5923 */ 5924 public alias extern(C) GstMemory* function(GstMemory* mem, ptrdiff_t offset, ptrdiff_t size) GstMemoryCopyFunction; 5925 5926 /** 5927 * Check if @mem1 and @mem2 occupy contiguous memory and return the offset of 5928 * @mem1 in the parent buffer in @offset. 5929 * 5930 * Params: 5931 * mem1 = a #GstMemory 5932 * mem2 = a #GstMemory 5933 * offset = a result offset 5934 * 5935 * Returns: %TRUE if @mem1 and @mem2 are in contiguous memory. 5936 */ 5937 public alias extern(C) int function(GstMemory* mem1, GstMemory* mem2, size_t* offset) GstMemoryIsSpanFunction; 5938 5939 /** 5940 * Get the memory of @mem that can be accessed according to the mode specified 5941 * in @info's flags. The function should return a pointer that contains at least 5942 * @maxsize bytes. 5943 * 5944 * Params: 5945 * mem = a #GstMemory 5946 * info = the #GstMapInfo to map with 5947 * maxsize = size to map 5948 * 5949 * Returns: a pointer to memory of which at least @maxsize bytes can be 5950 * accessed according to the access pattern in @info's flags. 5951 */ 5952 public alias extern(C) void* function(GstMemory* mem, GstMapInfo* info, size_t maxsize) GstMemoryMapFullFunction; 5953 5954 /** 5955 * Get the memory of @mem that can be accessed according to the mode specified 5956 * in @flags. The function should return a pointer that contains at least 5957 * @maxsize bytes. 5958 * 5959 * Params: 5960 * mem = a #GstMemory 5961 * maxsize = size to map 5962 * flags = access mode for the memory 5963 * 5964 * Returns: a pointer to memory of which at least @maxsize bytes can be 5965 * accessed according to the access pattern in @flags. 5966 */ 5967 public alias extern(C) void* function(GstMemory* mem, size_t maxsize, GstMapFlags flags) GstMemoryMapFunction; 5968 5969 /** 5970 * Share @size bytes from @mem starting at @offset and return them wrapped in a 5971 * new GstMemory object. If @size is set to -1, all bytes starting at @offset are 5972 * shared. This function does not make a copy of the bytes in @mem. 5973 * 5974 * Params: 5975 * mem = a #GstMemory 5976 * offset = an offset 5977 * size = a size or -1 5978 * 5979 * Returns: a new #GstMemory object sharing the requested region in @mem. 5980 */ 5981 public alias extern(C) GstMemory* function(GstMemory* mem, ptrdiff_t offset, ptrdiff_t size) GstMemoryShareFunction; 5982 5983 /** 5984 * Return the pointer previously retrieved with gst_memory_map() with @info. 5985 * 5986 * Params: 5987 * mem = a #GstMemory 5988 * info = a #GstMapInfo 5989 */ 5990 public alias extern(C) void function(GstMemory* mem, GstMapInfo* info) GstMemoryUnmapFullFunction; 5991 5992 /** 5993 * Return the pointer previously retrieved with gst_memory_map(). 5994 * 5995 * Params: 5996 * mem = a #GstMemory 5997 */ 5998 public alias extern(C) void function(GstMemory* mem) GstMemoryUnmapFunction; 5999 6000 /** 6001 * Function called when @meta is freed in @buffer. 6002 * 6003 * Params: 6004 * meta = a #GstMeta 6005 * buffer = a #GstBuffer 6006 */ 6007 public alias extern(C) void function(GstMeta* meta, GstBuffer* buffer) GstMetaFreeFunction; 6008 6009 /** 6010 * Function called when @meta is initialized in @buffer. 6011 * 6012 * Params: 6013 * meta = a #GstMeta 6014 * params = parameters passed to the init function 6015 * buffer = a #GstBuffer 6016 */ 6017 public alias extern(C) int function(GstMeta* meta, void* params, GstBuffer* buffer) GstMetaInitFunction; 6018 6019 /** 6020 * Function called for each @meta in @buffer as a result of performing a 6021 * transformation on @transbuf. Additional @type specific transform data 6022 * is passed to the function as @data. 6023 * 6024 * Implementations should check the @type of the transform and parse 6025 * additional type specific fields in @data that should be used to update 6026 * the metadata on @transbuf. 6027 * 6028 * Params: 6029 * transbuf = a #GstBuffer 6030 * meta = a #GstMeta 6031 * buffer = a #GstBuffer 6032 * type = the transform type 6033 * data = transform specific data. 6034 * 6035 * Returns: %TRUE if the transform could be performed 6036 */ 6037 public alias extern(C) int function(GstBuffer* transbuf, GstMeta* meta, GstBuffer* buffer, GQuark type, void* data) GstMetaTransformFunction; 6038 6039 /** 6040 * Function prototype for methods to create copies of instances. 6041 * 6042 * Params: 6043 * obj = MiniObject to copy 6044 * 6045 * Returns: reference to cloned instance. 6046 */ 6047 public alias extern(C) GstMiniObject* function(GstMiniObject* obj) GstMiniObjectCopyFunction; 6048 6049 /** 6050 * Function prototype for when a miniobject has lost its last refcount. 6051 * Implementation of the mini object are allowed to revive the 6052 * passed object by doing a gst_mini_object_ref(). If the object is not 6053 * revived after the dispose function, the function should return %TRUE 6054 * and the memory associated with the object is freed. 6055 * 6056 * Params: 6057 * obj = MiniObject to dispose 6058 * 6059 * Returns: %TRUE if the object should be cleaned up. 6060 */ 6061 public alias extern(C) int function(GstMiniObject* obj) GstMiniObjectDisposeFunction; 6062 6063 /** 6064 * Virtual function prototype for methods to free resources used by 6065 * mini-objects. 6066 * 6067 * Params: 6068 * obj = MiniObject to free 6069 */ 6070 public alias extern(C) void function(GstMiniObject* obj) GstMiniObjectFreeFunction; 6071 6072 /** 6073 * A #GstMiniObjectNotify function can be added to a mini object as a 6074 * callback that gets triggered when gst_mini_object_unref() drops the 6075 * last ref and @obj is about to be freed. 6076 * 6077 * Params: 6078 * userData = data that was provided when the notify was added 6079 * obj = the mini object 6080 */ 6081 public alias extern(C) void function(void* userData, GstMiniObject* obj) GstMiniObjectNotify; 6082 6083 /** 6084 * This function is called when the pad is activated during the element 6085 * READY to PAUSED state change. By default this function will call the 6086 * activate function that puts the pad in push mode but elements can 6087 * override this function to activate the pad in pull mode if they wish. 6088 * 6089 * Params: 6090 * pad = a #GstPad 6091 * parent = the parent of @pad 6092 * 6093 * Returns: %TRUE if the pad could be activated. 6094 */ 6095 public alias extern(C) int function(GstPad* pad, GstObject* parent) GstPadActivateFunction; 6096 6097 /** 6098 * The prototype of the push and pull activate functions. 6099 * 6100 * Params: 6101 * pad = a #GstPad 6102 * parent = the parent of @pad 6103 * mode = the requested activation mode of @pad 6104 * active = activate or deactivate the pad. 6105 * 6106 * Returns: %TRUE if the pad could be activated or deactivated. 6107 */ 6108 public alias extern(C) int function(GstPad* pad, GstObject* parent, GstPadMode mode, int active) GstPadActivateModeFunction; 6109 6110 /** 6111 * A function that will be called on sinkpads when chaining buffers. 6112 * The function typically processes the data contained in the buffer and 6113 * either consumes the data or passes it on to the internally linked pad(s). 6114 * 6115 * The implementer of this function receives a refcount to @buffer and should 6116 * gst_buffer_unref() when the buffer is no longer needed. 6117 * 6118 * When a chain function detects an error in the data stream, it must post an 6119 * error on the bus and return an appropriate #GstFlowReturn value. 6120 * 6121 * Params: 6122 * pad = the sink #GstPad that performed the chain. 6123 * parent = the parent of @pad. If the #GST_PAD_FLAG_NEED_PARENT 6124 * flag is set, @parent is guaranteed to be not-%NULL and remain valid 6125 * during the execution of this function. 6126 * buffer = the #GstBuffer that is chained, not %NULL. 6127 * 6128 * Returns: #GST_FLOW_OK for success 6129 */ 6130 public alias extern(C) GstFlowReturn function(GstPad* pad, GstObject* parent, GstBuffer* buffer) GstPadChainFunction; 6131 6132 /** 6133 * A function that will be called on sinkpads when chaining buffer lists. 6134 * The function typically processes the data contained in the buffer list and 6135 * either consumes the data or passes it on to the internally linked pad(s). 6136 * 6137 * The implementer of this function receives a refcount to @list and 6138 * should gst_buffer_list_unref() when the list is no longer needed. 6139 * 6140 * When a chainlist function detects an error in the data stream, it must 6141 * post an error on the bus and return an appropriate #GstFlowReturn value. 6142 * 6143 * Params: 6144 * pad = the sink #GstPad that performed the chain. 6145 * parent = the parent of @pad. If the #GST_PAD_FLAG_NEED_PARENT 6146 * flag is set, @parent is guaranteed to be not-%NULL and remain valid 6147 * during the execution of this function. 6148 * list = the #GstBufferList that is chained, not %NULL. 6149 * 6150 * Returns: #GST_FLOW_OK for success 6151 */ 6152 public alias extern(C) GstFlowReturn function(GstPad* pad, GstObject* parent, GstBufferList* list) GstPadChainListFunction; 6153 6154 /** 6155 * Function signature to handle an event for the pad. 6156 * 6157 * This variant is for specific elements that will take into account the 6158 * last downstream flow return (from a pad push), in which case they can 6159 * return it. 6160 * 6161 * Params: 6162 * pad = the #GstPad to handle the event. 6163 * parent = the parent of @pad. If the #GST_PAD_FLAG_NEED_PARENT 6164 * flag is set, @parent is guaranteed to be not-%NULL and remain valid 6165 * during the execution of this function. 6166 * event = the #GstEvent to handle. 6167 * 6168 * Returns: %GST_FLOW_OK if the event was handled properly, or any other 6169 * #GstFlowReturn dependent on downstream state. 6170 * 6171 * Since: 1.8 6172 */ 6173 public alias extern(C) GstFlowReturn function(GstPad* pad, GstObject* parent, GstEvent* event) GstPadEventFullFunction; 6174 6175 /** 6176 * Function signature to handle an event for the pad. 6177 * 6178 * Params: 6179 * pad = the #GstPad to handle the event. 6180 * parent = the parent of @pad. If the #GST_PAD_FLAG_NEED_PARENT 6181 * flag is set, @parent is guaranteed to be not-%NULL and remain valid 6182 * during the execution of this function. 6183 * event = the #GstEvent to handle. 6184 * 6185 * Returns: %TRUE if the pad could handle the event. 6186 */ 6187 public alias extern(C) int function(GstPad* pad, GstObject* parent, GstEvent* event) GstPadEventFunction; 6188 6189 /** 6190 * A forward function is called for all internally linked pads, see 6191 * gst_pad_forward(). 6192 * 6193 * Params: 6194 * pad = the #GstPad that is forwarded. 6195 * userData = the gpointer to optional user data. 6196 * 6197 * Returns: %TRUE if the dispatching procedure has to be stopped. 6198 */ 6199 public alias extern(C) int function(GstPad* pad, void* userData) GstPadForwardFunction; 6200 6201 /** 6202 * This function will be called on source pads when a peer element 6203 * request a buffer at the specified @offset and @length. If this function 6204 * returns #GST_FLOW_OK, the result buffer will be stored in @buffer. The 6205 * contents of @buffer is invalid for any other return value. 6206 * 6207 * This function is installed on a source pad with 6208 * gst_pad_set_getrange_function() and can only be called on source pads after 6209 * they are successfully activated with gst_pad_activate_mode() with the 6210 * #GST_PAD_MODE_PULL. 6211 * 6212 * @offset and @length are always given in byte units. @offset must normally be a value 6213 * between 0 and the length in bytes of the data available on @pad. The 6214 * length (duration in bytes) can be retrieved with a #GST_QUERY_DURATION or with a 6215 * #GST_QUERY_SEEKING. 6216 * 6217 * Any @offset larger or equal than the length will make the function return 6218 * #GST_FLOW_EOS, which corresponds to EOS. In this case @buffer does not 6219 * contain a valid buffer. 6220 * 6221 * The buffer size of @buffer will only be smaller than @length when @offset is 6222 * near the end of the stream. In all other cases, the size of @buffer must be 6223 * exactly the requested size. 6224 * 6225 * It is allowed to call this function with a 0 @length and valid @offset, in 6226 * which case @buffer will contain a 0-sized buffer and the function returns 6227 * #GST_FLOW_OK. 6228 * 6229 * When this function is called with a -1 @offset, the sequentially next buffer 6230 * of length @length in the stream is returned. 6231 * 6232 * When this function is called with a -1 @length, a buffer with a default 6233 * optimal length is returned in @buffer. The length might depend on the value 6234 * of @offset. 6235 * 6236 * Params: 6237 * pad = the src #GstPad to perform the getrange on. 6238 * parent = the parent of @pad. If the #GST_PAD_FLAG_NEED_PARENT 6239 * flag is set, @parent is guaranteed to be not-%NULL and remain valid 6240 * during the execution of this function. 6241 * offset = the offset of the range 6242 * length = the length of the range 6243 * buffer = a memory location to hold the result buffer, cannot be %NULL. 6244 * 6245 * Returns: #GST_FLOW_OK for success and a valid buffer in @buffer. Any other 6246 * return value leaves @buffer undefined. 6247 */ 6248 public alias extern(C) GstFlowReturn function(GstPad* pad, GstObject* parent, ulong offset, uint length, GstBuffer** buffer) GstPadGetRangeFunction; 6249 6250 /** 6251 * The signature of the internal pad link iterator function. 6252 * 6253 * Params: 6254 * pad = The #GstPad to query. 6255 * parent = the parent of @pad. If the #GST_PAD_FLAG_NEED_PARENT 6256 * flag is set, @parent is guaranteed to be not-%NULL and remain valid 6257 * during the execution of this function. 6258 * 6259 * Returns: a new #GstIterator that will iterate over all pads that are 6260 * linked to the given pad on the inside of the parent element. 6261 * 6262 * the caller must call gst_iterator_free() after usage. 6263 */ 6264 public alias extern(C) GstIterator* function(GstPad* pad, GstObject* parent) GstPadIterIntLinkFunction; 6265 6266 /** 6267 * Function signature to handle a new link on the pad. 6268 * 6269 * Params: 6270 * pad = the #GstPad that is linked. 6271 * parent = the parent of @pad. If the #GST_PAD_FLAG_NEED_PARENT 6272 * flag is set, @parent is guaranteed to be not-%NULL and remain valid 6273 * during the execution of this function. 6274 * peer = the peer #GstPad of the link 6275 * 6276 * Returns: the result of the link with the specified peer. 6277 */ 6278 public alias extern(C) GstPadLinkReturn function(GstPad* pad, GstObject* parent, GstPad* peer) GstPadLinkFunction; 6279 6280 /** 6281 * Callback used by gst_pad_add_probe(). Gets called to notify about the current 6282 * blocking type. 6283 * 6284 * The callback is allowed to modify the data pointer in @info. 6285 * 6286 * Params: 6287 * pad = the #GstPad that is blocked 6288 * info = #GstPadProbeInfo 6289 * userData = the gpointer to optional user data. 6290 * 6291 * Returns: a #GstPadProbeReturn 6292 */ 6293 public alias extern(C) GstPadProbeReturn function(GstPad* pad, GstPadProbeInfo* info, void* userData) GstPadProbeCallback; 6294 6295 /** 6296 * The signature of the query function. 6297 * 6298 * Params: 6299 * pad = the #GstPad to query. 6300 * parent = the parent of @pad. If the #GST_PAD_FLAG_NEED_PARENT 6301 * flag is set, @parent is guaranteed to be not-%NULL and remain valid 6302 * during the execution of this function. 6303 * query = the #GstQuery object to execute 6304 * 6305 * Returns: %TRUE if the query could be performed. 6306 */ 6307 public alias extern(C) int function(GstPad* pad, GstObject* parent, GstQuery* query) GstPadQueryFunction; 6308 6309 /** 6310 * Callback used by gst_pad_sticky_events_foreach(). 6311 * 6312 * When this function returns %TRUE, the next event will be 6313 * returned. When %FALSE is returned, gst_pad_sticky_events_foreach() will return. 6314 * 6315 * When @event is set to %NULL, the item will be removed from the list of sticky events. 6316 * @event can be replaced by assigning a new reference to it. 6317 * This function is responsible for unreffing the old event when 6318 * removing or modifying. 6319 * 6320 * Params: 6321 * pad = the #GstPad. 6322 * event = a sticky #GstEvent. 6323 * userData = the #gpointer to optional user data. 6324 * 6325 * Returns: %TRUE if the iteration should continue 6326 */ 6327 public alias extern(C) int function(GstPad* pad, GstEvent** event, void* userData) GstPadStickyEventsForeachFunction; 6328 6329 /** 6330 * Function signature to handle a unlinking the pad prom its peer. 6331 * 6332 * Params: 6333 * pad = the #GstPad that is linked. 6334 * parent = the parent of @pad. If the #GST_PAD_FLAG_NEED_PARENT 6335 * flag is set, @parent is guaranteed to be not-%NULL and remain valid 6336 * during the execution of this function. 6337 */ 6338 public alias extern(C) void function(GstPad* pad, GstObject* parent) GstPadUnlinkFunction; 6339 6340 /** 6341 * A function that can be used with e.g. gst_registry_feature_filter() 6342 * to get a list of pluginfeature that match certain criteria. 6343 * 6344 * Params: 6345 * feature = the pluginfeature to check 6346 * userData = the user_data that has been passed on e.g. 6347 * gst_registry_feature_filter() 6348 * 6349 * Returns: %TRUE for a positive match, %FALSE otherwise 6350 */ 6351 public alias extern(C) int function(GstPluginFeature* feature, void* userData) GstPluginFeatureFilter; 6352 6353 /** 6354 * A function that can be used with e.g. gst_registry_plugin_filter() 6355 * to get a list of plugins that match certain criteria. 6356 * 6357 * Params: 6358 * plugin = the plugin to check 6359 * userData = the user_data that has been passed on e.g. gst_registry_plugin_filter() 6360 * 6361 * Returns: %TRUE for a positive match, %FALSE otherwise 6362 */ 6363 public alias extern(C) int function(GstPlugin* plugin, void* userData) GstPluginFilter; 6364 6365 /** 6366 * A plugin should provide a pointer to a function of either #GstPluginInitFunc 6367 * or this type in the plugin_desc struct. 6368 * The function will be called by the loader at startup. One would then 6369 * register each #GstPluginFeature. This version allows 6370 * user data to be passed to init function (useful for bindings). 6371 * 6372 * Params: 6373 * plugin = The plugin object 6374 * userData = extra data 6375 * 6376 * Returns: %TRUE if plugin initialised successfully 6377 */ 6378 public alias extern(C) int function(GstPlugin* plugin, void* userData) GstPluginInitFullFunc; 6379 6380 /** 6381 * A plugin should provide a pointer to a function of this type in the 6382 * plugin_desc struct. 6383 * This function will be called by the loader at startup. One would then 6384 * register each #GstPluginFeature. 6385 * 6386 * Params: 6387 * plugin = The plugin object 6388 * 6389 * Returns: %TRUE if plugin initialised successfully 6390 */ 6391 public alias extern(C) int function(GstPlugin* plugin) GstPluginInitFunc; 6392 6393 /** */ 6394 public alias extern(C) void function(GstPromise* promise, void* userData) GstPromiseChangeFunc; 6395 6396 /** 6397 * A function that will be called in gst_structure_filter_and_map_in_place(). 6398 * The function may modify @value, and the value will be removed from 6399 * the structure if %FALSE is returned. 6400 * 6401 * Params: 6402 * fieldId = the #GQuark of the field name 6403 * value = the #GValue of the field 6404 * userData = user data 6405 * 6406 * Returns: %TRUE if the field should be preserved, %FALSE if it 6407 * should be removed. 6408 */ 6409 public alias extern(C) int function(GQuark fieldId, GValue* value, void* userData) GstStructureFilterMapFunc; 6410 6411 /** 6412 * A function that will be called in gst_structure_foreach(). The function may 6413 * not modify @value. 6414 * 6415 * Params: 6416 * fieldId = the #GQuark of the field name 6417 * value = the #GValue of the field 6418 * userData = user data 6419 * 6420 * Returns: %TRUE if the foreach operation should continue, %FALSE if 6421 * the foreach operation should stop with %FALSE. 6422 */ 6423 public alias extern(C) int function(GQuark fieldId, GValue* value, void* userData) GstStructureForeachFunc; 6424 6425 /** 6426 * A function that will be called in gst_structure_map_in_place(). The function 6427 * may modify @value. 6428 * 6429 * Params: 6430 * fieldId = the #GQuark of the field name 6431 * value = the #GValue of the field 6432 * userData = user data 6433 * 6434 * Returns: %TRUE if the map operation should continue, %FALSE if 6435 * the map operation should stop with %FALSE. 6436 */ 6437 public alias extern(C) int function(GQuark fieldId, GValue* value, void* userData) GstStructureMapFunc; 6438 6439 /** 6440 * A function that will be called in gst_tag_list_foreach(). The function may 6441 * not modify the tag list. 6442 * 6443 * Params: 6444 * list = the #GstTagList 6445 * tag = a name of a tag in @list 6446 * userData = user data 6447 */ 6448 public alias extern(C) void function(GstTagList* list, const(char)* tag, void* userData) GstTagForeachFunc; 6449 6450 /** 6451 * A function for merging multiple values of a tag used when registering 6452 * tags. 6453 * 6454 * Params: 6455 * dest = the destination #GValue 6456 * src = the source #GValue 6457 */ 6458 public alias extern(C) void function(GValue* dest, GValue* src) GstTagMergeFunc; 6459 6460 /** 6461 * A function that will repeatedly be called in the thread created by 6462 * a #GstTask. 6463 * 6464 * Params: 6465 * userData = user data passed to the function 6466 */ 6467 public alias extern(C) void function(void* userData) GstTaskFunction; 6468 6469 /** 6470 * Task function, see gst_task_pool_push(). 6471 * 6472 * Params: 6473 * userData = user data for the task function 6474 */ 6475 public alias extern(C) void function(void* userData) GstTaskPoolFunction; 6476 6477 /** 6478 * Custom GstTask thread callback functions that can be installed. 6479 * 6480 * Params: 6481 * task = The #GstTask 6482 * thread = The #GThread 6483 * userData = user data 6484 */ 6485 public alias extern(C) void function(GstTask* task, GThread* thread, void* userData) GstTaskThreadFunc; 6486 6487 /** 6488 * A function that will be called by typefinding. 6489 * 6490 * Params: 6491 * find = A #GstTypeFind structure 6492 * userData = optional data to pass to the function 6493 */ 6494 public alias extern(C) void function(GstTypeFind* find, void* userData) GstTypeFindFunction; 6495 6496 /** 6497 * Used together with gst_value_compare() to compare #GValue items. 6498 * 6499 * Params: 6500 * value1 = first value for comparison 6501 * value2 = second value for comparison 6502 * 6503 * Returns: one of GST_VALUE_LESS_THAN, GST_VALUE_EQUAL, GST_VALUE_GREATER_THAN 6504 * or GST_VALUE_UNORDERED 6505 */ 6506 public alias extern(C) int function(GValue* value1, GValue* value2) GstValueCompareFunc; 6507 6508 /** 6509 * Used by gst_value_deserialize() to parse a non-binary form into the #GValue. 6510 * 6511 * Params: 6512 * dest = a #GValue 6513 * s = a string 6514 * 6515 * Returns: %TRUE for success 6516 */ 6517 public alias extern(C) int function(GValue* dest, const(char)* s) GstValueDeserializeFunc; 6518 6519 /** 6520 * Used by gst_value_serialize() to obtain a non-binary form of the #GValue. 6521 * 6522 * Free-function: g_free 6523 * 6524 * Params: 6525 * value1 = a #GValue 6526 * 6527 * Returns: the string representation of the value 6528 */ 6529 public alias extern(C) char* function(GValue* value1) GstValueSerializeFunc; 6530 6531 /** 6532 * The allocator name for the default system memory allocator 6533 */ 6534 enum ALLOCATOR_SYSMEM = "SystemMemory"; 6535 alias GST_ALLOCATOR_SYSMEM = ALLOCATOR_SYSMEM; 6536 6537 /** 6538 * Combination of all possible fields that can be copied with 6539 * gst_buffer_copy_into(). 6540 */ 6541 enum BUFFER_COPY_ALL = 15; 6542 alias GST_BUFFER_COPY_ALL = BUFFER_COPY_ALL; 6543 6544 /** 6545 * Combination of all possible metadata fields that can be copied with 6546 * gst_buffer_copy_into(). 6547 */ 6548 enum BUFFER_COPY_METADATA = 7; 6549 alias GST_BUFFER_COPY_METADATA = BUFFER_COPY_METADATA; 6550 6551 /** 6552 * Constant for no-offset return results. 6553 */ 6554 enum BUFFER_OFFSET_NONE = 18446744073709551615UL; 6555 alias GST_BUFFER_OFFSET_NONE = BUFFER_OFFSET_NONE; 6556 6557 enum CAN_INLINE = 1; 6558 alias GST_CAN_INLINE = CAN_INLINE; 6559 6560 enum CAPS_FEATURE_MEMORY_SYSTEM_MEMORY = "memory:SystemMemory"; 6561 alias GST_CAPS_FEATURE_MEMORY_SYSTEM_MEMORY = CAPS_FEATURE_MEMORY_SYSTEM_MEMORY; 6562 6563 /** 6564 * Constant to define an undefined clock time. 6565 */ 6566 enum CLOCK_TIME_NONE = 18446744073709551615UL; 6567 alias GST_CLOCK_TIME_NONE = CLOCK_TIME_NONE; 6568 6569 enum DEBUG_BG_MASK = 240; 6570 alias GST_DEBUG_BG_MASK = DEBUG_BG_MASK; 6571 6572 enum DEBUG_FG_MASK = 15; 6573 alias GST_DEBUG_FG_MASK = DEBUG_FG_MASK; 6574 6575 enum DEBUG_FORMAT_MASK = 65280; 6576 alias GST_DEBUG_FORMAT_MASK = DEBUG_FORMAT_MASK; 6577 6578 enum ELEMENT_FACTORY_KLASS_DECODER = "Decoder"; 6579 alias GST_ELEMENT_FACTORY_KLASS_DECODER = ELEMENT_FACTORY_KLASS_DECODER; 6580 6581 enum ELEMENT_FACTORY_KLASS_DECRYPTOR = "Decryptor"; 6582 alias GST_ELEMENT_FACTORY_KLASS_DECRYPTOR = ELEMENT_FACTORY_KLASS_DECRYPTOR; 6583 6584 enum ELEMENT_FACTORY_KLASS_DEMUXER = "Demuxer"; 6585 alias GST_ELEMENT_FACTORY_KLASS_DEMUXER = ELEMENT_FACTORY_KLASS_DEMUXER; 6586 6587 enum ELEMENT_FACTORY_KLASS_DEPAYLOADER = "Depayloader"; 6588 alias GST_ELEMENT_FACTORY_KLASS_DEPAYLOADER = ELEMENT_FACTORY_KLASS_DEPAYLOADER; 6589 6590 enum ELEMENT_FACTORY_KLASS_ENCODER = "Encoder"; 6591 alias GST_ELEMENT_FACTORY_KLASS_ENCODER = ELEMENT_FACTORY_KLASS_ENCODER; 6592 6593 enum ELEMENT_FACTORY_KLASS_ENCRYPTOR = "Encryptor"; 6594 alias GST_ELEMENT_FACTORY_KLASS_ENCRYPTOR = ELEMENT_FACTORY_KLASS_ENCRYPTOR; 6595 6596 enum ELEMENT_FACTORY_KLASS_FORMATTER = "Formatter"; 6597 alias GST_ELEMENT_FACTORY_KLASS_FORMATTER = ELEMENT_FACTORY_KLASS_FORMATTER; 6598 6599 enum ELEMENT_FACTORY_KLASS_MEDIA_AUDIO = "Audio"; 6600 alias GST_ELEMENT_FACTORY_KLASS_MEDIA_AUDIO = ELEMENT_FACTORY_KLASS_MEDIA_AUDIO; 6601 6602 enum ELEMENT_FACTORY_KLASS_MEDIA_IMAGE = "Image"; 6603 alias GST_ELEMENT_FACTORY_KLASS_MEDIA_IMAGE = ELEMENT_FACTORY_KLASS_MEDIA_IMAGE; 6604 6605 enum ELEMENT_FACTORY_KLASS_MEDIA_METADATA = "Metadata"; 6606 alias GST_ELEMENT_FACTORY_KLASS_MEDIA_METADATA = ELEMENT_FACTORY_KLASS_MEDIA_METADATA; 6607 6608 enum ELEMENT_FACTORY_KLASS_MEDIA_SUBTITLE = "Subtitle"; 6609 alias GST_ELEMENT_FACTORY_KLASS_MEDIA_SUBTITLE = ELEMENT_FACTORY_KLASS_MEDIA_SUBTITLE; 6610 6611 enum ELEMENT_FACTORY_KLASS_MEDIA_VIDEO = "Video"; 6612 alias GST_ELEMENT_FACTORY_KLASS_MEDIA_VIDEO = ELEMENT_FACTORY_KLASS_MEDIA_VIDEO; 6613 6614 enum ELEMENT_FACTORY_KLASS_MUXER = "Muxer"; 6615 alias GST_ELEMENT_FACTORY_KLASS_MUXER = ELEMENT_FACTORY_KLASS_MUXER; 6616 6617 enum ELEMENT_FACTORY_KLASS_PARSER = "Parser"; 6618 alias GST_ELEMENT_FACTORY_KLASS_PARSER = ELEMENT_FACTORY_KLASS_PARSER; 6619 6620 enum ELEMENT_FACTORY_KLASS_PAYLOADER = "Payloader"; 6621 alias GST_ELEMENT_FACTORY_KLASS_PAYLOADER = ELEMENT_FACTORY_KLASS_PAYLOADER; 6622 6623 enum ELEMENT_FACTORY_KLASS_SINK = "Sink"; 6624 alias GST_ELEMENT_FACTORY_KLASS_SINK = ELEMENT_FACTORY_KLASS_SINK; 6625 6626 enum ELEMENT_FACTORY_KLASS_SRC = "Source"; 6627 alias GST_ELEMENT_FACTORY_KLASS_SRC = ELEMENT_FACTORY_KLASS_SRC; 6628 6629 /** 6630 * Elements of any of the defined GST_ELEMENT_FACTORY_LIST types 6631 */ 6632 enum ELEMENT_FACTORY_TYPE_ANY = 562949953421311UL; 6633 alias GST_ELEMENT_FACTORY_TYPE_ANY = ELEMENT_FACTORY_TYPE_ANY; 6634 6635 /** 6636 * All sinks handling audio, video or image media types 6637 */ 6638 enum ELEMENT_FACTORY_TYPE_AUDIOVIDEO_SINKS = 3940649673949188UL; 6639 alias GST_ELEMENT_FACTORY_TYPE_AUDIOVIDEO_SINKS = ELEMENT_FACTORY_TYPE_AUDIOVIDEO_SINKS; 6640 6641 /** 6642 * All encoders handling audio media types 6643 */ 6644 enum ELEMENT_FACTORY_TYPE_AUDIO_ENCODER = 1125899906842626UL; 6645 alias GST_ELEMENT_FACTORY_TYPE_AUDIO_ENCODER = ELEMENT_FACTORY_TYPE_AUDIO_ENCODER; 6646 6647 /** 6648 * All elements used to 'decode' streams (decoders, demuxers, parsers, depayloaders) 6649 */ 6650 enum ELEMENT_FACTORY_TYPE_DECODABLE = 1377UL; 6651 alias GST_ELEMENT_FACTORY_TYPE_DECODABLE = ELEMENT_FACTORY_TYPE_DECODABLE; 6652 6653 enum ELEMENT_FACTORY_TYPE_DECODER = 1UL; 6654 alias GST_ELEMENT_FACTORY_TYPE_DECODER = ELEMENT_FACTORY_TYPE_DECODER; 6655 6656 enum ELEMENT_FACTORY_TYPE_DECRYPTOR = 1024UL; 6657 alias GST_ELEMENT_FACTORY_TYPE_DECRYPTOR = ELEMENT_FACTORY_TYPE_DECRYPTOR; 6658 6659 enum ELEMENT_FACTORY_TYPE_DEMUXER = 32UL; 6660 alias GST_ELEMENT_FACTORY_TYPE_DEMUXER = ELEMENT_FACTORY_TYPE_DEMUXER; 6661 6662 enum ELEMENT_FACTORY_TYPE_DEPAYLOADER = 256UL; 6663 alias GST_ELEMENT_FACTORY_TYPE_DEPAYLOADER = ELEMENT_FACTORY_TYPE_DEPAYLOADER; 6664 6665 enum ELEMENT_FACTORY_TYPE_ENCODER = 2UL; 6666 alias GST_ELEMENT_FACTORY_TYPE_ENCODER = ELEMENT_FACTORY_TYPE_ENCODER; 6667 6668 enum ELEMENT_FACTORY_TYPE_ENCRYPTOR = 2048UL; 6669 alias GST_ELEMENT_FACTORY_TYPE_ENCRYPTOR = ELEMENT_FACTORY_TYPE_ENCRYPTOR; 6670 6671 enum ELEMENT_FACTORY_TYPE_FORMATTER = 512UL; 6672 alias GST_ELEMENT_FACTORY_TYPE_FORMATTER = ELEMENT_FACTORY_TYPE_FORMATTER; 6673 6674 enum ELEMENT_FACTORY_TYPE_MAX_ELEMENTS = 281474976710656UL; 6675 alias GST_ELEMENT_FACTORY_TYPE_MAX_ELEMENTS = ELEMENT_FACTORY_TYPE_MAX_ELEMENTS; 6676 6677 /** 6678 * Elements matching any of the defined GST_ELEMENT_FACTORY_TYPE_MEDIA types 6679 * 6680 * Note: Do not use this if you wish to not filter against any of the defined 6681 * media types. If you wish to do this, simply don't specify any 6682 * GST_ELEMENT_FACTORY_TYPE_MEDIA flag. 6683 */ 6684 enum ELEMENT_FACTORY_TYPE_MEDIA_ANY = 18446462598732840960UL; 6685 alias GST_ELEMENT_FACTORY_TYPE_MEDIA_ANY = ELEMENT_FACTORY_TYPE_MEDIA_ANY; 6686 6687 enum ELEMENT_FACTORY_TYPE_MEDIA_AUDIO = 1125899906842624UL; 6688 alias GST_ELEMENT_FACTORY_TYPE_MEDIA_AUDIO = ELEMENT_FACTORY_TYPE_MEDIA_AUDIO; 6689 6690 enum ELEMENT_FACTORY_TYPE_MEDIA_IMAGE = 2251799813685248UL; 6691 alias GST_ELEMENT_FACTORY_TYPE_MEDIA_IMAGE = ELEMENT_FACTORY_TYPE_MEDIA_IMAGE; 6692 6693 enum ELEMENT_FACTORY_TYPE_MEDIA_METADATA = 9007199254740992UL; 6694 alias GST_ELEMENT_FACTORY_TYPE_MEDIA_METADATA = ELEMENT_FACTORY_TYPE_MEDIA_METADATA; 6695 6696 enum ELEMENT_FACTORY_TYPE_MEDIA_SUBTITLE = 4503599627370496UL; 6697 alias GST_ELEMENT_FACTORY_TYPE_MEDIA_SUBTITLE = ELEMENT_FACTORY_TYPE_MEDIA_SUBTITLE; 6698 6699 enum ELEMENT_FACTORY_TYPE_MEDIA_VIDEO = 562949953421312UL; 6700 alias GST_ELEMENT_FACTORY_TYPE_MEDIA_VIDEO = ELEMENT_FACTORY_TYPE_MEDIA_VIDEO; 6701 6702 enum ELEMENT_FACTORY_TYPE_MUXER = 16UL; 6703 alias GST_ELEMENT_FACTORY_TYPE_MUXER = ELEMENT_FACTORY_TYPE_MUXER; 6704 6705 enum ELEMENT_FACTORY_TYPE_PARSER = 64UL; 6706 alias GST_ELEMENT_FACTORY_TYPE_PARSER = ELEMENT_FACTORY_TYPE_PARSER; 6707 6708 enum ELEMENT_FACTORY_TYPE_PAYLOADER = 128UL; 6709 alias GST_ELEMENT_FACTORY_TYPE_PAYLOADER = ELEMENT_FACTORY_TYPE_PAYLOADER; 6710 6711 enum ELEMENT_FACTORY_TYPE_SINK = 4UL; 6712 alias GST_ELEMENT_FACTORY_TYPE_SINK = ELEMENT_FACTORY_TYPE_SINK; 6713 6714 enum ELEMENT_FACTORY_TYPE_SRC = 8UL; 6715 alias GST_ELEMENT_FACTORY_TYPE_SRC = ELEMENT_FACTORY_TYPE_SRC; 6716 6717 /** 6718 * All encoders handling video or image media types 6719 */ 6720 enum ELEMENT_FACTORY_TYPE_VIDEO_ENCODER = 2814749767106562UL; 6721 alias GST_ELEMENT_FACTORY_TYPE_VIDEO_ENCODER = ELEMENT_FACTORY_TYPE_VIDEO_ENCODER; 6722 6723 /** 6724 * Name and contact details of the author(s). Use \n to separate 6725 * multiple author details. 6726 * E.g: "Joe Bloggs <joe.blogs at foo.com>" 6727 */ 6728 enum ELEMENT_METADATA_AUTHOR = "author"; 6729 alias GST_ELEMENT_METADATA_AUTHOR = ELEMENT_METADATA_AUTHOR; 6730 6731 /** 6732 * Sentence describing the purpose of the element. 6733 * E.g: "Write stream to a file" 6734 */ 6735 enum ELEMENT_METADATA_DESCRIPTION = "description"; 6736 alias GST_ELEMENT_METADATA_DESCRIPTION = ELEMENT_METADATA_DESCRIPTION; 6737 6738 /** 6739 * Set uri pointing to user documentation. Applications can use this to show 6740 * help for e.g. effects to users. 6741 */ 6742 enum ELEMENT_METADATA_DOC_URI = "doc-uri"; 6743 alias GST_ELEMENT_METADATA_DOC_URI = ELEMENT_METADATA_DOC_URI; 6744 6745 /** 6746 * Elements that bridge to certain other products can include an icon of that 6747 * used product. Application can show the icon in menus/selectors to help 6748 * identifying specific elements. 6749 */ 6750 enum ELEMENT_METADATA_ICON_NAME = "icon-name"; 6751 alias GST_ELEMENT_METADATA_ICON_NAME = ELEMENT_METADATA_ICON_NAME; 6752 6753 /** 6754 * String describing the type of element, as an unordered list 6755 * separated with slashes ('/'). See draft-klass.txt of the design docs 6756 * for more details and common types. E.g: "Sink/File" 6757 */ 6758 enum ELEMENT_METADATA_KLASS = "klass"; 6759 alias GST_ELEMENT_METADATA_KLASS = ELEMENT_METADATA_KLASS; 6760 6761 /** 6762 * The long English name of the element. E.g. "File Sink" 6763 */ 6764 enum ELEMENT_METADATA_LONGNAME = "long-name"; 6765 alias GST_ELEMENT_METADATA_LONGNAME = ELEMENT_METADATA_LONGNAME; 6766 6767 /** 6768 * Builds a string using errno describing the previously failed system 6769 * call. To be used as the debug argument in #GST_ELEMENT_ERROR. 6770 */ 6771 enum ERROR_SYSTEM = "system error: %s"; 6772 alias GST_ERROR_SYSTEM = ERROR_SYSTEM; 6773 6774 enum EVENT_NUM_SHIFT = 8; 6775 alias GST_EVENT_NUM_SHIFT = EVENT_NUM_SHIFT; 6776 6777 /** 6778 * The same thing as #GST_EVENT_TYPE_UPSTREAM | #GST_EVENT_TYPE_DOWNSTREAM. 6779 */ 6780 enum EVENT_TYPE_BOTH = 3; 6781 alias GST_EVENT_TYPE_BOTH = EVENT_TYPE_BOTH; 6782 6783 /** 6784 * A mask value with all bits set, for use as a 6785 * GstFlagSet mask where all flag bits must match 6786 * exactly 6787 */ 6788 enum FLAG_SET_MASK_EXACT = 4294967295; 6789 alias GST_FLAG_SET_MASK_EXACT = FLAG_SET_MASK_EXACT; 6790 6791 /** 6792 * The PERCENT format is between 0 and this value 6793 */ 6794 enum FORMAT_PERCENT_MAX = 1000000UL; 6795 alias GST_FORMAT_PERCENT_MAX = FORMAT_PERCENT_MAX; 6796 6797 /** 6798 * The value used to scale down the reported PERCENT format value to 6799 * its real value. 6800 */ 6801 enum FORMAT_PERCENT_SCALE = 10000UL; 6802 alias GST_FORMAT_PERCENT_SCALE = FORMAT_PERCENT_SCALE; 6803 6804 /** 6805 * Can be used together with #GST_FOURCC_ARGS to properly output a 6806 * #guint32 fourcc value in a printf()-style text message. 6807 * 6808 * |[ 6809 * printf ("fourcc: %" GST_FOURCC_FORMAT "\n", GST_FOURCC_ARGS (fcc)); 6810 * ]| 6811 */ 6812 enum FOURCC_FORMAT = "c%c%c%c"; 6813 alias GST_FOURCC_FORMAT = FOURCC_FORMAT; 6814 6815 /** 6816 * A value which is guaranteed to never be returned by 6817 * gst_util_group_id_next(). 6818 * 6819 * Can be used as a default value in variables used to store group_id. 6820 */ 6821 enum GROUP_ID_INVALID = 0; 6822 alias GST_GROUP_ID_INVALID = GROUP_ID_INVALID; 6823 6824 /** 6825 * To be used in GST_PLUGIN_DEFINE if unsure about the licence. 6826 */ 6827 enum LICENSE_UNKNOWN = "unknown"; 6828 alias GST_LICENSE_UNKNOWN = LICENSE_UNKNOWN; 6829 6830 /** 6831 * GstLockFlags value alias for GST_LOCK_FLAG_READ | GST_LOCK_FLAG_WRITE 6832 */ 6833 enum LOCK_FLAG_READWRITE = 3; 6834 alias GST_LOCK_FLAG_READWRITE = LOCK_FLAG_READWRITE; 6835 6836 /** 6837 * GstMapFlags value alias for GST_MAP_READ | GST_MAP_WRITE 6838 */ 6839 enum MAP_READWRITE = 3; 6840 alias GST_MAP_READWRITE = MAP_READWRITE; 6841 6842 /** 6843 * This metadata stays relevant as long as memory layout is unchanged. 6844 */ 6845 enum META_TAG_MEMORY_STR = "memory"; 6846 alias GST_META_TAG_MEMORY_STR = META_TAG_MEMORY_STR; 6847 6848 /** 6849 * Constant that defines one GStreamer millisecond. 6850 */ 6851 enum MSECOND = 1000000UL; 6852 alias GST_MSECOND = MSECOND; 6853 6854 /** 6855 * Constant that defines one GStreamer nanosecond 6856 */ 6857 enum NSECOND = 1UL; 6858 alias GST_NSECOND = NSECOND; 6859 6860 /** 6861 * Use this flag on GObject properties to signal they can make sense to be. 6862 * controlled over time. This hint is used by the GstController. 6863 */ 6864 enum PARAM_CONTROLLABLE = 512; 6865 alias GST_PARAM_CONTROLLABLE = PARAM_CONTROLLABLE; 6866 6867 /** 6868 * Use this flag on GObject properties of GstElements to indicate that 6869 * they can be changed when the element is in the PAUSED or lower state. 6870 * This flag implies GST_PARAM_MUTABLE_READY. 6871 */ 6872 enum PARAM_MUTABLE_PAUSED = 2048; 6873 alias GST_PARAM_MUTABLE_PAUSED = PARAM_MUTABLE_PAUSED; 6874 6875 /** 6876 * Use this flag on GObject properties of GstElements to indicate that 6877 * they can be changed when the element is in the PLAYING or lower state. 6878 * This flag implies GST_PARAM_MUTABLE_PAUSED. 6879 */ 6880 enum PARAM_MUTABLE_PLAYING = 4096; 6881 alias GST_PARAM_MUTABLE_PLAYING = PARAM_MUTABLE_PLAYING; 6882 6883 /** 6884 * Use this flag on GObject properties of GstElements to indicate that 6885 * they can be changed when the element is in the READY or lower state. 6886 */ 6887 enum PARAM_MUTABLE_READY = 1024; 6888 alias GST_PARAM_MUTABLE_READY = PARAM_MUTABLE_READY; 6889 6890 /** 6891 * Bits based on GST_PARAM_USER_SHIFT can be used by 3rd party applications. 6892 */ 6893 enum PARAM_USER_SHIFT = 65536; 6894 alias GST_PARAM_USER_SHIFT = PARAM_USER_SHIFT; 6895 6896 /** 6897 * The field name in a GstCaps that is used to signal the UUID of the protection 6898 * system. 6899 */ 6900 enum PROTECTION_SYSTEM_ID_CAPS_FIELD = "protection-system"; 6901 alias GST_PROTECTION_SYSTEM_ID_CAPS_FIELD = PROTECTION_SYSTEM_ID_CAPS_FIELD; 6902 6903 /** 6904 * printf format type used to debug GStreamer types. You can use this in 6905 * combination with GStreamer's debug logging system as well as the functions 6906 * gst_info_vasprintf(), gst_info_strdup_vprintf() and gst_info_strdup_printf() 6907 * to pretty-print the following types: #GstCaps, #GstStructure, 6908 * #GstCapsFeatures, #GstTagList, #GstDateTime, #GstBuffer, #GstBufferList, 6909 * #GstMessage, #GstEvent, #GstQuery, #GstContext, #GstPad, #GstObject. All 6910 * #GObject types will be printed as typename plus pointer, and everything 6911 * else will simply be printed as pointer address. 6912 * 6913 * This can only be used on types whose size is >= sizeof(gpointer). 6914 */ 6915 enum PTR_FORMAT = "paA"; 6916 alias GST_PTR_FORMAT = PTR_FORMAT; 6917 6918 enum QUERY_NUM_SHIFT = 8; 6919 alias GST_QUERY_NUM_SHIFT = QUERY_NUM_SHIFT; 6920 6921 /** 6922 * The same thing as #GST_QUERY_TYPE_UPSTREAM | #GST_QUERY_TYPE_DOWNSTREAM. 6923 */ 6924 enum QUERY_TYPE_BOTH = 3; 6925 alias GST_QUERY_TYPE_BOTH = QUERY_TYPE_BOTH; 6926 6927 /** 6928 * Constant that defines one GStreamer second. 6929 */ 6930 enum SECOND = 1000000000UL; 6931 alias GST_SECOND = SECOND; 6932 6933 /** 6934 * printf format type used to debug GStreamer segments. You can use this in 6935 * combination with GStreamer's debug logging system as well as the functions 6936 * gst_info_vasprintf(), gst_info_strdup_vprintf() and gst_info_strdup_printf() 6937 * to pretty-print #GstSegment structures. 6938 * This can only be used on pointers to GstSegment structures. 6939 */ 6940 enum SEGMENT_FORMAT = "paB"; 6941 alias GST_SEGMENT_FORMAT = SEGMENT_FORMAT; 6942 6943 /** 6944 * A value which is guaranteed to never be returned by 6945 * gst_util_seqnum_next(). 6946 * 6947 * Can be used as a default value in variables used to store seqnum. 6948 */ 6949 enum SEQNUM_INVALID = 0; 6950 alias GST_SEQNUM_INVALID = SEQNUM_INVALID; 6951 6952 /** 6953 * A string that can be used in printf-like format strings to display a signed 6954 * #GstClockTimeDiff or #gint64 value in h:m:s format. Use GST_TIME_ARGS() to 6955 * construct the matching arguments. 6956 * 6957 * Example: 6958 * |[ 6959 * printf("%" GST_STIME_FORMAT "\n", GST_STIME_ARGS(ts)); 6960 * ]| 6961 */ 6962 enum STIME_FORMAT = "c%"; 6963 alias GST_STIME_FORMAT = STIME_FORMAT; 6964 6965 /** 6966 * album containing this data (string) 6967 * 6968 * The album name as it should be displayed, e.g. 'The Jazz Guitar' 6969 */ 6970 enum TAG_ALBUM = "album"; 6971 alias GST_TAG_ALBUM = TAG_ALBUM; 6972 6973 /** 6974 * The artist of the entire album, as it should be displayed. 6975 */ 6976 enum TAG_ALBUM_ARTIST = "album-artist"; 6977 alias GST_TAG_ALBUM_ARTIST = TAG_ALBUM_ARTIST; 6978 6979 /** 6980 * The artist of the entire album, as it should be sorted. 6981 */ 6982 enum TAG_ALBUM_ARTIST_SORTNAME = "album-artist-sortname"; 6983 alias GST_TAG_ALBUM_ARTIST_SORTNAME = TAG_ALBUM_ARTIST_SORTNAME; 6984 6985 /** 6986 * album gain in db (double) 6987 */ 6988 enum TAG_ALBUM_GAIN = "replaygain-album-gain"; 6989 alias GST_TAG_ALBUM_GAIN = TAG_ALBUM_GAIN; 6990 6991 /** 6992 * peak of the album (double) 6993 */ 6994 enum TAG_ALBUM_PEAK = "replaygain-album-peak"; 6995 alias GST_TAG_ALBUM_PEAK = TAG_ALBUM_PEAK; 6996 6997 /** 6998 * album containing this data, as used for sorting (string) 6999 * 7000 * The album name as it should be sorted, e.g. 'Jazz Guitar, The' 7001 */ 7002 enum TAG_ALBUM_SORTNAME = "album-sortname"; 7003 alias GST_TAG_ALBUM_SORTNAME = TAG_ALBUM_SORTNAME; 7004 7005 /** 7006 * count of discs inside collection this disc belongs to (unsigned integer) 7007 */ 7008 enum TAG_ALBUM_VOLUME_COUNT = "album-disc-count"; 7009 alias GST_TAG_ALBUM_VOLUME_COUNT = TAG_ALBUM_VOLUME_COUNT; 7010 7011 /** 7012 * disc number inside a collection (unsigned integer) 7013 */ 7014 enum TAG_ALBUM_VOLUME_NUMBER = "album-disc-number"; 7015 alias GST_TAG_ALBUM_VOLUME_NUMBER = TAG_ALBUM_VOLUME_NUMBER; 7016 7017 /** 7018 * Arbitrary application data (sample) 7019 * 7020 * Some formats allow applications to add their own arbitrary data 7021 * into files. This data is application dependent. 7022 */ 7023 enum TAG_APPLICATION_DATA = "application-data"; 7024 alias GST_TAG_APPLICATION_DATA = TAG_APPLICATION_DATA; 7025 7026 /** 7027 * Name of the application used to create the media (string) 7028 */ 7029 enum TAG_APPLICATION_NAME = "application-name"; 7030 alias GST_TAG_APPLICATION_NAME = TAG_APPLICATION_NAME; 7031 7032 /** 7033 * person(s) responsible for the recording (string) 7034 * 7035 * The artist name as it should be displayed, e.g. 'Jimi Hendrix' or 7036 * 'The Guitar Heroes' 7037 */ 7038 enum TAG_ARTIST = "artist"; 7039 alias GST_TAG_ARTIST = TAG_ARTIST; 7040 7041 /** 7042 * person(s) responsible for the recording, as used for sorting (string) 7043 * 7044 * The artist name as it should be sorted, e.g. 'Hendrix, Jimi' or 7045 * 'Guitar Heroes, The' 7046 */ 7047 enum TAG_ARTIST_SORTNAME = "artist-sortname"; 7048 alias GST_TAG_ARTIST_SORTNAME = TAG_ARTIST_SORTNAME; 7049 7050 /** 7051 * generic file attachment (sample) (sample taglist should specify the content 7052 * type and if possible set "filename" to the file name of the 7053 * attachment) 7054 */ 7055 enum TAG_ATTACHMENT = "attachment"; 7056 alias GST_TAG_ATTACHMENT = TAG_ATTACHMENT; 7057 7058 /** 7059 * codec the audio data is stored in (string) 7060 */ 7061 enum TAG_AUDIO_CODEC = "audio-codec"; 7062 alias GST_TAG_AUDIO_CODEC = TAG_AUDIO_CODEC; 7063 7064 /** 7065 * number of beats per minute in audio (double) 7066 */ 7067 enum TAG_BEATS_PER_MINUTE = "beats-per-minute"; 7068 alias GST_TAG_BEATS_PER_MINUTE = TAG_BEATS_PER_MINUTE; 7069 7070 /** 7071 * exact or average bitrate in bits/s (unsigned integer) 7072 */ 7073 enum TAG_BITRATE = "bitrate"; 7074 alias GST_TAG_BITRATE = TAG_BITRATE; 7075 7076 /** 7077 * codec the data is stored in (string) 7078 */ 7079 enum TAG_CODEC = "codec"; 7080 alias GST_TAG_CODEC = TAG_CODEC; 7081 7082 /** 7083 * free text commenting the data (string) 7084 */ 7085 enum TAG_COMMENT = "comment"; 7086 alias GST_TAG_COMMENT = TAG_COMMENT; 7087 7088 /** 7089 * person(s) who composed the recording (string) 7090 */ 7091 enum TAG_COMPOSER = "composer"; 7092 alias GST_TAG_COMPOSER = TAG_COMPOSER; 7093 7094 /** 7095 * The composer's name, used for sorting (string) 7096 */ 7097 enum TAG_COMPOSER_SORTNAME = "composer-sortname"; 7098 alias GST_TAG_COMPOSER_SORTNAME = TAG_COMPOSER_SORTNAME; 7099 7100 /** 7101 * conductor/performer refinement (string) 7102 */ 7103 enum TAG_CONDUCTOR = "conductor"; 7104 alias GST_TAG_CONDUCTOR = TAG_CONDUCTOR; 7105 7106 /** 7107 * contact information (string) 7108 */ 7109 enum TAG_CONTACT = "contact"; 7110 alias GST_TAG_CONTACT = TAG_CONTACT; 7111 7112 /** 7113 * container format the data is stored in (string) 7114 */ 7115 enum TAG_CONTAINER_FORMAT = "container-format"; 7116 alias GST_TAG_CONTAINER_FORMAT = TAG_CONTAINER_FORMAT; 7117 7118 /** 7119 * copyright notice of the data (string) 7120 */ 7121 enum TAG_COPYRIGHT = "copyright"; 7122 alias GST_TAG_COPYRIGHT = TAG_COPYRIGHT; 7123 7124 /** 7125 * URI to location where copyright details can be found (string) 7126 */ 7127 enum TAG_COPYRIGHT_URI = "copyright-uri"; 7128 alias GST_TAG_COPYRIGHT_URI = TAG_COPYRIGHT_URI; 7129 7130 /** 7131 * date the data was created (#GDate structure) 7132 */ 7133 enum TAG_DATE = "date"; 7134 alias GST_TAG_DATE = TAG_DATE; 7135 7136 /** 7137 * date and time the data was created (#GstDateTime structure) 7138 */ 7139 enum TAG_DATE_TIME = "datetime"; 7140 alias GST_TAG_DATE_TIME = TAG_DATE_TIME; 7141 7142 /** 7143 * short text describing the content of the data (string) 7144 */ 7145 enum TAG_DESCRIPTION = "description"; 7146 alias GST_TAG_DESCRIPTION = TAG_DESCRIPTION; 7147 7148 /** 7149 * Manufacturer of the device used to create the media (string) 7150 */ 7151 enum TAG_DEVICE_MANUFACTURER = "device-manufacturer"; 7152 alias GST_TAG_DEVICE_MANUFACTURER = TAG_DEVICE_MANUFACTURER; 7153 7154 /** 7155 * Model of the device used to create the media (string) 7156 */ 7157 enum TAG_DEVICE_MODEL = "device-model"; 7158 alias GST_TAG_DEVICE_MODEL = TAG_DEVICE_MODEL; 7159 7160 /** 7161 * length in GStreamer time units (nanoseconds) (unsigned 64-bit integer) 7162 */ 7163 enum TAG_DURATION = "duration"; 7164 alias GST_TAG_DURATION = TAG_DURATION; 7165 7166 /** 7167 * name of the person or organisation that encoded the file. May contain a 7168 * copyright message if the person or organisation also holds the copyright 7169 * (string) 7170 * 7171 * Note: do not use this field to describe the encoding application. Use 7172 * #GST_TAG_APPLICATION_NAME or #GST_TAG_COMMENT for that. 7173 */ 7174 enum TAG_ENCODED_BY = "encoded-by"; 7175 alias GST_TAG_ENCODED_BY = TAG_ENCODED_BY; 7176 7177 /** 7178 * encoder used to encode this stream (string) 7179 */ 7180 enum TAG_ENCODER = "encoder"; 7181 alias GST_TAG_ENCODER = TAG_ENCODER; 7182 7183 /** 7184 * version of the encoder used to encode this stream (unsigned integer) 7185 */ 7186 enum TAG_ENCODER_VERSION = "encoder-version"; 7187 alias GST_TAG_ENCODER_VERSION = TAG_ENCODER_VERSION; 7188 7189 /** 7190 * key/value text commenting the data (string) 7191 * 7192 * Must be in the form of 'key=comment' or 7193 * 'key[lc]=comment' where 'lc' is an ISO-639 7194 * language code. 7195 * 7196 * This tag is used for unknown Vorbis comment tags, 7197 * unknown APE tags and certain ID3v2 comment fields. 7198 */ 7199 enum TAG_EXTENDED_COMMENT = "extended-comment"; 7200 alias GST_TAG_EXTENDED_COMMENT = TAG_EXTENDED_COMMENT; 7201 7202 /** 7203 * genre this data belongs to (string) 7204 */ 7205 enum TAG_GENRE = "genre"; 7206 alias GST_TAG_GENRE = TAG_GENRE; 7207 7208 /** 7209 * Indicates the direction the device is pointing to when capturing 7210 * a media. It is represented as degrees in floating point representation, 7211 * 0 means the geographic north, and increases clockwise (double from 0 to 360) 7212 * 7213 * See also #GST_TAG_GEO_LOCATION_MOVEMENT_DIRECTION 7214 */ 7215 enum TAG_GEO_LOCATION_CAPTURE_DIRECTION = "geo-location-capture-direction"; 7216 alias GST_TAG_GEO_LOCATION_CAPTURE_DIRECTION = TAG_GEO_LOCATION_CAPTURE_DIRECTION; 7217 7218 /** 7219 * The city (english name) where the media has been produced (string). 7220 */ 7221 enum TAG_GEO_LOCATION_CITY = "geo-location-city"; 7222 alias GST_TAG_GEO_LOCATION_CITY = TAG_GEO_LOCATION_CITY; 7223 7224 /** 7225 * The country (english name) where the media has been produced (string). 7226 */ 7227 enum TAG_GEO_LOCATION_COUNTRY = "geo-location-country"; 7228 alias GST_TAG_GEO_LOCATION_COUNTRY = TAG_GEO_LOCATION_COUNTRY; 7229 7230 /** 7231 * geo elevation of where the media has been recorded or produced in meters 7232 * according to WGS84 (zero is average sea level) (double). 7233 */ 7234 enum TAG_GEO_LOCATION_ELEVATION = "geo-location-elevation"; 7235 alias GST_TAG_GEO_LOCATION_ELEVATION = TAG_GEO_LOCATION_ELEVATION; 7236 7237 /** 7238 * Represents the expected error on the horizontal positioning in 7239 * meters (double). 7240 */ 7241 enum TAG_GEO_LOCATION_HORIZONTAL_ERROR = "geo-location-horizontal-error"; 7242 alias GST_TAG_GEO_LOCATION_HORIZONTAL_ERROR = TAG_GEO_LOCATION_HORIZONTAL_ERROR; 7243 7244 /** 7245 * geo latitude location of where the media has been recorded or produced in 7246 * degrees according to WGS84 (zero at the equator, negative values for southern 7247 * latitudes) (double). 7248 */ 7249 enum TAG_GEO_LOCATION_LATITUDE = "geo-location-latitude"; 7250 alias GST_TAG_GEO_LOCATION_LATITUDE = TAG_GEO_LOCATION_LATITUDE; 7251 7252 /** 7253 * geo longitude location of where the media has been recorded or produced in 7254 * degrees according to WGS84 (zero at the prime meridian in Greenwich/UK, 7255 * negative values for western longitudes). (double). 7256 */ 7257 enum TAG_GEO_LOCATION_LONGITUDE = "geo-location-longitude"; 7258 alias GST_TAG_GEO_LOCATION_LONGITUDE = TAG_GEO_LOCATION_LONGITUDE; 7259 7260 /** 7261 * Indicates the movement direction of the device performing the capture 7262 * of a media. It is represented as degrees in floating point representation, 7263 * 0 means the geographic north, and increases clockwise (double from 0 to 360) 7264 * 7265 * See also #GST_TAG_GEO_LOCATION_CAPTURE_DIRECTION 7266 */ 7267 enum TAG_GEO_LOCATION_MOVEMENT_DIRECTION = "geo-location-movement-direction"; 7268 alias GST_TAG_GEO_LOCATION_MOVEMENT_DIRECTION = TAG_GEO_LOCATION_MOVEMENT_DIRECTION; 7269 7270 /** 7271 * Speed of the capturing device when performing the capture. 7272 * Represented in m/s. (double) 7273 * 7274 * See also #GST_TAG_GEO_LOCATION_MOVEMENT_DIRECTION 7275 */ 7276 enum TAG_GEO_LOCATION_MOVEMENT_SPEED = "geo-location-movement-speed"; 7277 alias GST_TAG_GEO_LOCATION_MOVEMENT_SPEED = TAG_GEO_LOCATION_MOVEMENT_SPEED; 7278 7279 /** 7280 * human readable descriptive location of where the media has been recorded or 7281 * produced. (string). 7282 */ 7283 enum TAG_GEO_LOCATION_NAME = "geo-location-name"; 7284 alias GST_TAG_GEO_LOCATION_NAME = TAG_GEO_LOCATION_NAME; 7285 7286 /** 7287 * A location 'smaller' than GST_TAG_GEO_LOCATION_CITY that specifies better 7288 * where the media has been produced. (e.g. the neighborhood) (string). 7289 * 7290 * This tag has been added as this is how it is handled/named in XMP's 7291 * Iptc4xmpcore schema. 7292 */ 7293 enum TAG_GEO_LOCATION_SUBLOCATION = "geo-location-sublocation"; 7294 alias GST_TAG_GEO_LOCATION_SUBLOCATION = TAG_GEO_LOCATION_SUBLOCATION; 7295 7296 /** 7297 * Groups together media that are related and spans multiple tracks. An 7298 * example are multiple pieces of a concerto. (string) 7299 */ 7300 enum TAG_GROUPING = "grouping"; 7301 alias GST_TAG_GROUPING = TAG_GROUPING; 7302 7303 /** 7304 * Homepage for this media (i.e. artist or movie homepage) (string) 7305 */ 7306 enum TAG_HOMEPAGE = "homepage"; 7307 alias GST_TAG_HOMEPAGE = TAG_HOMEPAGE; 7308 7309 /** 7310 * image (sample) (sample taglist should specify the content type and preferably 7311 * also set "image-type" field as #GstTagImageType) 7312 */ 7313 enum TAG_IMAGE = "image"; 7314 alias GST_TAG_IMAGE = TAG_IMAGE; 7315 7316 /** 7317 * Represents the 'Orientation' tag from EXIF. Defines how the image 7318 * should be rotated and mirrored for display. (string) 7319 * 7320 * This tag has a predefined set of allowed values: 7321 * "rotate-0" 7322 * "rotate-90" 7323 * "rotate-180" 7324 * "rotate-270" 7325 * "flip-rotate-0" 7326 * "flip-rotate-90" 7327 * "flip-rotate-180" 7328 * "flip-rotate-270" 7329 * 7330 * The naming is adopted according to a possible transformation to perform 7331 * on the image to fix its orientation, obviously equivalent operations will 7332 * yield the same result. 7333 * 7334 * Rotations indicated by the values are in clockwise direction and 7335 * 'flip' means an horizontal mirroring. 7336 */ 7337 enum TAG_IMAGE_ORIENTATION = "image-orientation"; 7338 alias GST_TAG_IMAGE_ORIENTATION = TAG_IMAGE_ORIENTATION; 7339 7340 /** 7341 * Information about the people behind a remix and similar 7342 * interpretations of another existing piece (string) 7343 */ 7344 enum TAG_INTERPRETED_BY = "interpreted-by"; 7345 alias GST_TAG_INTERPRETED_BY = TAG_INTERPRETED_BY; 7346 7347 /** 7348 * International Standard Recording Code - see http://www.ifpi.org/isrc/ (string) 7349 */ 7350 enum TAG_ISRC = "isrc"; 7351 alias GST_TAG_ISRC = TAG_ISRC; 7352 7353 /** 7354 * comma separated keywords describing the content (string). 7355 */ 7356 enum TAG_KEYWORDS = "keywords"; 7357 alias GST_TAG_KEYWORDS = TAG_KEYWORDS; 7358 7359 /** 7360 * ISO-639-2 or ISO-639-1 code for the language the content is in (string) 7361 * 7362 * There is utility API in libgsttag in gst-plugins-base to obtain a translated 7363 * language name from the language code: gst_tag_get_language_name() 7364 */ 7365 enum TAG_LANGUAGE_CODE = "language-code"; 7366 alias GST_TAG_LANGUAGE_CODE = TAG_LANGUAGE_CODE; 7367 7368 /** 7369 * Name of the language the content is in (string) 7370 * 7371 * Free-form name of the language the content is in, if a language code 7372 * is not available. This tag should not be set in addition to a language 7373 * code. It is undefined what language or locale the language name is in. 7374 */ 7375 enum TAG_LANGUAGE_NAME = "language-name"; 7376 alias GST_TAG_LANGUAGE_NAME = TAG_LANGUAGE_NAME; 7377 7378 /** 7379 * license of data (string) 7380 */ 7381 enum TAG_LICENSE = "license"; 7382 alias GST_TAG_LICENSE = TAG_LICENSE; 7383 7384 /** 7385 * URI to location where license details can be found (string) 7386 */ 7387 enum TAG_LICENSE_URI = "license-uri"; 7388 alias GST_TAG_LICENSE_URI = TAG_LICENSE_URI; 7389 7390 /** 7391 * Origin of media as a URI (location, where the original of the file or stream 7392 * is hosted) (string) 7393 */ 7394 enum TAG_LOCATION = "location"; 7395 alias GST_TAG_LOCATION = TAG_LOCATION; 7396 7397 /** 7398 * The lyrics of the media (string) 7399 */ 7400 enum TAG_LYRICS = "lyrics"; 7401 alias GST_TAG_LYRICS = TAG_LYRICS; 7402 7403 /** 7404 * maximum bitrate in bits/s (unsigned integer) 7405 */ 7406 enum TAG_MAXIMUM_BITRATE = "maximum-bitrate"; 7407 alias GST_TAG_MAXIMUM_BITRATE = TAG_MAXIMUM_BITRATE; 7408 7409 /** 7410 * <ulink url="http://en.wikipedia.org/wiki/Note#Note_designation_in_accordance_with_octave_name">Midi note number</ulink> 7411 * of the audio track. This is useful for sample instruments and in particular 7412 * for multi-samples. 7413 */ 7414 enum TAG_MIDI_BASE_NOTE = "midi-base-note"; 7415 alias GST_TAG_MIDI_BASE_NOTE = TAG_MIDI_BASE_NOTE; 7416 7417 /** 7418 * minimum bitrate in bits/s (unsigned integer) 7419 */ 7420 enum TAG_MINIMUM_BITRATE = "minimum-bitrate"; 7421 alias GST_TAG_MINIMUM_BITRATE = TAG_MINIMUM_BITRATE; 7422 7423 /** 7424 * nominal bitrate in bits/s (unsigned integer). The actual bitrate might be 7425 * different from this target bitrate. 7426 */ 7427 enum TAG_NOMINAL_BITRATE = "nominal-bitrate"; 7428 alias GST_TAG_NOMINAL_BITRATE = TAG_NOMINAL_BITRATE; 7429 7430 /** 7431 * organization (string) 7432 */ 7433 enum TAG_ORGANIZATION = "organization"; 7434 alias GST_TAG_ORGANIZATION = TAG_ORGANIZATION; 7435 7436 /** 7437 * person(s) performing (string) 7438 */ 7439 enum TAG_PERFORMER = "performer"; 7440 alias GST_TAG_PERFORMER = TAG_PERFORMER; 7441 7442 /** 7443 * image that is meant for preview purposes, e.g. small icon-sized version 7444 * (sample) (sample taglist should specify the content type) 7445 */ 7446 enum TAG_PREVIEW_IMAGE = "preview-image"; 7447 alias GST_TAG_PREVIEW_IMAGE = TAG_PREVIEW_IMAGE; 7448 7449 /** 7450 * Any private data that may be contained in tags (sample). 7451 * 7452 * It is represented by #GstSample in which #GstBuffer contains the 7453 * binary data and the sample's info #GstStructure may contain any 7454 * extra information that identifies the origin or meaning of the data. 7455 * 7456 * Private frames in ID3v2 tags ('PRIV' frames) will be represented 7457 * using this tag, in which case the GstStructure will be named 7458 * "ID3PrivateFrame" and contain a field named "owner" of type string 7459 * which contains the owner-identification string from the tag. 7460 */ 7461 enum TAG_PRIVATE_DATA = "private-data"; 7462 alias GST_TAG_PRIVATE_DATA = TAG_PRIVATE_DATA; 7463 7464 /** 7465 * Name of the label or publisher (string) 7466 */ 7467 enum TAG_PUBLISHER = "publisher"; 7468 alias GST_TAG_PUBLISHER = TAG_PUBLISHER; 7469 7470 /** 7471 * reference level of track and album gain values (double) 7472 */ 7473 enum TAG_REFERENCE_LEVEL = "replaygain-reference-level"; 7474 alias GST_TAG_REFERENCE_LEVEL = TAG_REFERENCE_LEVEL; 7475 7476 /** 7477 * serial number of track (unsigned integer) 7478 */ 7479 enum TAG_SERIAL = "serial"; 7480 alias GST_TAG_SERIAL = TAG_SERIAL; 7481 7482 /** 7483 * Number of the episode within a season/show (unsigned integer) 7484 */ 7485 enum TAG_SHOW_EPISODE_NUMBER = "show-episode-number"; 7486 alias GST_TAG_SHOW_EPISODE_NUMBER = TAG_SHOW_EPISODE_NUMBER; 7487 7488 /** 7489 * Name of the show, used for displaying (string) 7490 */ 7491 enum TAG_SHOW_NAME = "show-name"; 7492 alias GST_TAG_SHOW_NAME = TAG_SHOW_NAME; 7493 7494 /** 7495 * Number of the season of a show/series (unsigned integer) 7496 */ 7497 enum TAG_SHOW_SEASON_NUMBER = "show-season-number"; 7498 alias GST_TAG_SHOW_SEASON_NUMBER = TAG_SHOW_SEASON_NUMBER; 7499 7500 /** 7501 * Name of the show, used for sorting (string) 7502 */ 7503 enum TAG_SHOW_SORTNAME = "show-sortname"; 7504 alias GST_TAG_SHOW_SORTNAME = TAG_SHOW_SORTNAME; 7505 7506 /** 7507 * codec/format the subtitle data is stored in (string) 7508 */ 7509 enum TAG_SUBTITLE_CODEC = "subtitle-codec"; 7510 alias GST_TAG_SUBTITLE_CODEC = TAG_SUBTITLE_CODEC; 7511 7512 /** 7513 * commonly used title (string) 7514 * 7515 * The title as it should be displayed, e.g. 'The Doll House' 7516 */ 7517 enum TAG_TITLE = "title"; 7518 alias GST_TAG_TITLE = TAG_TITLE; 7519 7520 /** 7521 * commonly used title, as used for sorting (string) 7522 * 7523 * The title as it should be sorted, e.g. 'Doll House, The' 7524 */ 7525 enum TAG_TITLE_SORTNAME = "title-sortname"; 7526 alias GST_TAG_TITLE_SORTNAME = TAG_TITLE_SORTNAME; 7527 7528 /** 7529 * count of tracks inside collection this track belongs to (unsigned integer) 7530 */ 7531 enum TAG_TRACK_COUNT = "track-count"; 7532 alias GST_TAG_TRACK_COUNT = TAG_TRACK_COUNT; 7533 7534 /** 7535 * track gain in db (double) 7536 */ 7537 enum TAG_TRACK_GAIN = "replaygain-track-gain"; 7538 alias GST_TAG_TRACK_GAIN = TAG_TRACK_GAIN; 7539 7540 /** 7541 * track number inside a collection (unsigned integer) 7542 */ 7543 enum TAG_TRACK_NUMBER = "track-number"; 7544 alias GST_TAG_TRACK_NUMBER = TAG_TRACK_NUMBER; 7545 7546 /** 7547 * peak of the track (double) 7548 */ 7549 enum TAG_TRACK_PEAK = "replaygain-track-peak"; 7550 alias GST_TAG_TRACK_PEAK = TAG_TRACK_PEAK; 7551 7552 /** 7553 * Rating attributed by a person (likely the application user). 7554 * The higher the value, the more the user likes this media 7555 * (unsigned int from 0 to 100) 7556 */ 7557 enum TAG_USER_RATING = "user-rating"; 7558 alias GST_TAG_USER_RATING = TAG_USER_RATING; 7559 7560 /** 7561 * version of this data (string) 7562 */ 7563 enum TAG_VERSION = "version"; 7564 alias GST_TAG_VERSION = TAG_VERSION; 7565 7566 /** 7567 * codec the video data is stored in (string) 7568 */ 7569 enum TAG_VIDEO_CODEC = "video-codec"; 7570 alias GST_TAG_VIDEO_CODEC = TAG_VIDEO_CODEC; 7571 7572 /** 7573 * A string that can be used in printf-like format strings to display a 7574 * #GstClockTime value in h:m:s format. Use GST_TIME_ARGS() to construct 7575 * the matching arguments. 7576 * 7577 * Example: 7578 * |[<!-- language="C" --> 7579 * printf("%" GST_TIME_FORMAT "\n", GST_TIME_ARGS(ts)); 7580 * ]| 7581 */ 7582 enum TIME_FORMAT = "u:%02u:%02u.%09u"; 7583 alias GST_TIME_FORMAT = TIME_FORMAT; 7584 7585 /** 7586 * Special value for the repeat_count set in gst_toc_entry_set_loop() or 7587 * returned by gst_toc_entry_set_loop() to indicate infinite looping. 7588 */ 7589 enum TOC_REPEAT_COUNT_INFINITE = -1; 7590 alias GST_TOC_REPEAT_COUNT_INFINITE = TOC_REPEAT_COUNT_INFINITE; 7591 7592 /** 7593 * Value for #GstUri<!-- -->.port to indicate no port number. 7594 */ 7595 enum URI_NO_PORT = 0; 7596 alias GST_URI_NO_PORT = URI_NO_PORT; 7597 7598 /** 7599 * Constant that defines one GStreamer microsecond. 7600 */ 7601 enum USECOND = 1000UL; 7602 alias GST_USECOND = USECOND; 7603 7604 /** 7605 * Indicates that the first value provided to a comparison function 7606 * (gst_value_compare()) is equal to the second one. 7607 */ 7608 enum VALUE_EQUAL = 0; 7609 alias GST_VALUE_EQUAL = VALUE_EQUAL; 7610 7611 /** 7612 * Indicates that the first value provided to a comparison function 7613 * (gst_value_compare()) is greater than the second one. 7614 */ 7615 enum VALUE_GREATER_THAN = 1; 7616 alias GST_VALUE_GREATER_THAN = VALUE_GREATER_THAN; 7617 7618 /** 7619 * Indicates that the first value provided to a comparison function 7620 * (gst_value_compare()) is lesser than the second one. 7621 */ 7622 enum VALUE_LESS_THAN = -1; 7623 alias GST_VALUE_LESS_THAN = VALUE_LESS_THAN; 7624 7625 /** 7626 * Indicates that the comparison function (gst_value_compare()) can not 7627 * determine a order for the two provided values. 7628 */ 7629 enum VALUE_UNORDERED = 2; 7630 alias GST_VALUE_UNORDERED = VALUE_UNORDERED; 7631 7632 /** 7633 * The major version of GStreamer at compile time: 7634 */ 7635 enum VERSION_MAJOR = 1; 7636 alias GST_VERSION_MAJOR = VERSION_MAJOR; 7637 7638 /** 7639 * The micro version of GStreamer at compile time: 7640 */ 7641 enum VERSION_MICRO = 1; 7642 alias GST_VERSION_MICRO = VERSION_MICRO; 7643 7644 /** 7645 * The minor version of GStreamer at compile time: 7646 */ 7647 enum VERSION_MINOR = 14; 7648 alias GST_VERSION_MINOR = VERSION_MINOR; 7649 7650 /** 7651 * The nano version of GStreamer at compile time: 7652 * Actual releases have 0, GIT versions have 1, prerelease versions have 2-... 7653 */ 7654 enum VERSION_NANO = 0; 7655 alias GST_VERSION_NANO = VERSION_NANO;