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