annotate loader/dshow/mediatype.h @ 25005:1635b2b31bdd

Add missing call to audio_in_uninit in v4l2 tv driver. Without it, tv does not start on the second run when using mplayer in slave or idle mode. Patch by Stanislaw Jesmanowicz stan at jesmanowicz dot com
author voroshil
date Tue, 13 Nov 2007 11:34:45 +0000
parents 4691811bd8c7
children de09fcf0b4f1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
22305
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
1 /*
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
2 -------------------------------------------------------------------
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
3 AM_MEDIA_TYPE service functions declarations
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
4 -------------------------------------------------------------------
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
5 */
23493
133b63fc16a2 Add regular #define for header file.
voroshil
parents: 22305
diff changeset
6 #ifndef DS_MEDIATYPE_H
133b63fc16a2 Add regular #define for header file.
voroshil
parents: 22305
diff changeset
7 #define DS_MEDIATYPE_H
22305
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
8 #include "guids.h"
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
9
24428
4691811bd8c7 Move AM_MEDIA_TYPE structure definition to mediatype.h.
voroshil
parents: 23493
diff changeset
10 typedef struct __attribute__((__packed__)) _MediaType
4691811bd8c7 Move AM_MEDIA_TYPE structure definition to mediatype.h.
voroshil
parents: 23493
diff changeset
11 {
4691811bd8c7 Move AM_MEDIA_TYPE structure definition to mediatype.h.
voroshil
parents: 23493
diff changeset
12 GUID majortype; //0x0
4691811bd8c7 Move AM_MEDIA_TYPE structure definition to mediatype.h.
voroshil
parents: 23493
diff changeset
13 GUID subtype; //0x10
4691811bd8c7 Move AM_MEDIA_TYPE structure definition to mediatype.h.
voroshil
parents: 23493
diff changeset
14 int bFixedSizeSamples; //0x20
4691811bd8c7 Move AM_MEDIA_TYPE structure definition to mediatype.h.
voroshil
parents: 23493
diff changeset
15 int bTemporalCompression; //0x24
4691811bd8c7 Move AM_MEDIA_TYPE structure definition to mediatype.h.
voroshil
parents: 23493
diff changeset
16 unsigned long lSampleSize; //0x28
4691811bd8c7 Move AM_MEDIA_TYPE structure definition to mediatype.h.
voroshil
parents: 23493
diff changeset
17 GUID formattype; //0x2c
4691811bd8c7 Move AM_MEDIA_TYPE structure definition to mediatype.h.
voroshil
parents: 23493
diff changeset
18 IUnknown* pUnk; //0x3c
4691811bd8c7 Move AM_MEDIA_TYPE structure definition to mediatype.h.
voroshil
parents: 23493
diff changeset
19 unsigned long cbFormat; //0x40
4691811bd8c7 Move AM_MEDIA_TYPE structure definition to mediatype.h.
voroshil
parents: 23493
diff changeset
20 char* pbFormat; //0x44
4691811bd8c7 Move AM_MEDIA_TYPE structure definition to mediatype.h.
voroshil
parents: 23493
diff changeset
21 } AM_MEDIA_TYPE;
4691811bd8c7 Move AM_MEDIA_TYPE structure definition to mediatype.h.
voroshil
parents: 23493
diff changeset
22
22305
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
23 /**
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
24 * \brief print info from AM_MEDIA_TYPE structure
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
25 * =param[in] label short lable for media type
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
26 * \param[in] pmt pointer to AM_MEDIA_TYPE
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
27 *
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
28 * routine used for debug purposes
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
29 *
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
30 */
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
31 void DisplayMediaType(const char * label,const AM_MEDIA_TYPE* pmt);
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
32 /**
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
33 * \brief frees memory, pointed by pbFormat and pUnk members of AM_MEDIA_TYPE structure
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
34 *
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
35 * \param[in] pmt pointer to structure
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
36 *
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
37 * \note
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
38 * routine does not frees memory allocated for AM_MEDIA_TYPE, so given pointer will be
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
39 * valid after this routine call.
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
40 *
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
41 */
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
42 void FreeMediaType(AM_MEDIA_TYPE* pmt);
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
43 /**
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
44 * \brief frees memory allocated for AM_MEDIA_TYPE structure, including pbFormat and pUnk
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
45 * members
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
46 *
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
47 * \param[in] pmt pointer to structure
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
48 *
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
49 * \note
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
50 * after call to this routine, pointer to AM_MEDIA_TYPE will not be valid anymore
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
51 *
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
52 */
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
53 void DeleteMediaType(AM_MEDIA_TYPE* pmt);
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
54 /**
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
55 * \brief copyies info from source to destination AM_MEDIA_TYPE structures
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
56 *
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
57 * \param[in] pSrc pointer to AM_MEDIA_TYPE structure to copy data from
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
58 * \param[out] pDst pointer to AM_MEDIA_TYPE structure to copy data to
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
59 *
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
60 * \return S_OK - success
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
61 * \return E_POINTER - pSrc or pDst is NULL or (pSrc->cbFormat && !pSrc->pbFormat)
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
62 * \return E_INVALIDARG - (pSrc == pDst)
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
63 * \return E_OUTOFMEMORY - Insufficient memory
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
64 *
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
65 * \note
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
66 * - pDst must point to existing AM_MEDIA_TYPE structure (all data will be overwritten)
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
67 * - if pDst->pbFormat!=NULL this will cause memory leak (as described in Directshow SDK)!
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
68 *
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
69 */
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
70 HRESULT CopyMediaType(AM_MEDIA_TYPE* pDst,const AM_MEDIA_TYPE* pSrc);
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
71 /**
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
72 * \brief allocates new AM_MEDIA_TYPE structure and fills it with info from given one
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
73 *
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
74 * \param[in] pSrc pointer to AM_MEDIA_TYPE structure to copy data from
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
75 *
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
76 * \return result code, returned from CopyMediaType
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
77 *
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
78 */
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
79 AM_MEDIA_TYPE* CreateMediaType(const AM_MEDIA_TYPE* pSrc);
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
80
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
81 /**
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
82 * \brief compares two AM_MEDIA_TYPE structures for compatibility
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
83 *
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
84 * \param[in] pmt1 first AM_MEDIA_TYPE structure for compare
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
85 * \param[in] pmt2 second AM_MEDIA_TYPE structure for compare
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
86 * \param[in] bWildcards 1 means that GUID_NULL of one structure will be compatible with any value of another structure
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
87 *
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
88 * \return 1 if structures are compatible
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
89 * \return 0 if structures are not compatible
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
90 *
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
91 */
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents:
diff changeset
92 int CompareMediaTypes(const AM_MEDIA_TYPE * pmt1, const AM_MEDIA_TYPE * pmt2, int bWildcards);
23493
133b63fc16a2 Add regular #define for header file.
voroshil
parents: 22305
diff changeset
93
133b63fc16a2 Add regular #define for header file.
voroshil
parents: 22305
diff changeset
94 #endif // DS_MEDIA_TYPE_H