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