Mercurial > mplayer.hg
annotate libmpdemux/demux_demuxers.c @ 36582:b28f3ff37ae7
Use av_unused for unused arguments instead of various hacks.
author | reimar |
---|---|
date | Mon, 20 Jan 2014 22:08:48 +0000 |
parents | fb65d6e1a9b2 |
children |
rev | line source |
---|---|
29238
d643e4643313
Add standard license header to all files in libmpdemux.
diego
parents:
26817
diff
changeset
|
1 /* |
d643e4643313
Add standard license header to all files in libmpdemux.
diego
parents:
26817
diff
changeset
|
2 * This file is part of MPlayer. |
d643e4643313
Add standard license header to all files in libmpdemux.
diego
parents:
26817
diff
changeset
|
3 * |
d643e4643313
Add standard license header to all files in libmpdemux.
diego
parents:
26817
diff
changeset
|
4 * MPlayer is free software; you can redistribute it and/or modify |
d643e4643313
Add standard license header to all files in libmpdemux.
diego
parents:
26817
diff
changeset
|
5 * it under the terms of the GNU General Public License as published by |
d643e4643313
Add standard license header to all files in libmpdemux.
diego
parents:
26817
diff
changeset
|
6 * the Free Software Foundation; either version 2 of the License, or |
d643e4643313
Add standard license header to all files in libmpdemux.
diego
parents:
26817
diff
changeset
|
7 * (at your option) any later version. |
d643e4643313
Add standard license header to all files in libmpdemux.
diego
parents:
26817
diff
changeset
|
8 * |
d643e4643313
Add standard license header to all files in libmpdemux.
diego
parents:
26817
diff
changeset
|
9 * MPlayer is distributed in the hope that it will be useful, |
d643e4643313
Add standard license header to all files in libmpdemux.
diego
parents:
26817
diff
changeset
|
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
d643e4643313
Add standard license header to all files in libmpdemux.
diego
parents:
26817
diff
changeset
|
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
d643e4643313
Add standard license header to all files in libmpdemux.
diego
parents:
26817
diff
changeset
|
12 * GNU General Public License for more details. |
d643e4643313
Add standard license header to all files in libmpdemux.
diego
parents:
26817
diff
changeset
|
13 * |
d643e4643313
Add standard license header to all files in libmpdemux.
diego
parents:
26817
diff
changeset
|
14 * You should have received a copy of the GNU General Public License along |
d643e4643313
Add standard license header to all files in libmpdemux.
diego
parents:
26817
diff
changeset
|
15 * with MPlayer; if not, write to the Free Software Foundation, Inc., |
d643e4643313
Add standard license header to all files in libmpdemux.
diego
parents:
26817
diff
changeset
|
16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
d643e4643313
Add standard license header to all files in libmpdemux.
diego
parents:
26817
diff
changeset
|
17 */ |
4765
d0c2c8af46b4
Demuxers demuxer support for using external audiofile (or muxed subtitles).
albeu
parents:
diff
changeset
|
18 |
d0c2c8af46b4
Demuxers demuxer support for using external audiofile (or muxed subtitles).
albeu
parents:
diff
changeset
|
19 #include "config.h" |
18176
f72bc5754209
Part3 of Otvos Attila's oattila AT chello-hu mp_msg changes, with lots of modifications as usual
reynaldo
parents:
17636
diff
changeset
|
20 #include "mp_msg.h" |
f72bc5754209
Part3 of Otvos Attila's oattila AT chello-hu mp_msg changes, with lots of modifications as usual
reynaldo
parents:
17636
diff
changeset
|
21 #include "help_mp.h" |
4765
d0c2c8af46b4
Demuxers demuxer support for using external audiofile (or muxed subtitles).
albeu
parents:
diff
changeset
|
22 |
d0c2c8af46b4
Demuxers demuxer support for using external audiofile (or muxed subtitles).
albeu
parents:
diff
changeset
|
23 #include <stdlib.h> |
d0c2c8af46b4
Demuxers demuxer support for using external audiofile (or muxed subtitles).
albeu
parents:
diff
changeset
|
24 #include <stdio.h> |
22605
4d81dbdf46b9
Add explicit location for headers from the stream/ directory.
diego
parents:
20071
diff
changeset
|
25 #include "stream/stream.h" |
4765
d0c2c8af46b4
Demuxers demuxer support for using external audiofile (or muxed subtitles).
albeu
parents:
diff
changeset
|
26 #include "demuxer.h" |
d0c2c8af46b4
Demuxers demuxer support for using external audiofile (or muxed subtitles).
albeu
parents:
diff
changeset
|
27 #include "stheader.h" |
d0c2c8af46b4
Demuxers demuxer support for using external audiofile (or muxed subtitles).
albeu
parents:
diff
changeset
|
28 |
d0c2c8af46b4
Demuxers demuxer support for using external audiofile (or muxed subtitles).
albeu
parents:
diff
changeset
|
29 typedef struct dd_priv { |
d0c2c8af46b4
Demuxers demuxer support for using external audiofile (or muxed subtitles).
albeu
parents:
diff
changeset
|
30 demuxer_t* vd; |
d0c2c8af46b4
Demuxers demuxer support for using external audiofile (or muxed subtitles).
albeu
parents:
diff
changeset
|
31 demuxer_t* ad; |
d0c2c8af46b4
Demuxers demuxer support for using external audiofile (or muxed subtitles).
albeu
parents:
diff
changeset
|
32 demuxer_t* sd; |
d0c2c8af46b4
Demuxers demuxer support for using external audiofile (or muxed subtitles).
albeu
parents:
diff
changeset
|
33 } dd_priv_t; |
d0c2c8af46b4
Demuxers demuxer support for using external audiofile (or muxed subtitles).
albeu
parents:
diff
changeset
|
34 |
25707
d4fe6e23283e
Make all demuxer_desc_t const, thus moving them to .rodata
reimar
parents:
22605
diff
changeset
|
35 extern const demuxer_desc_t demuxer_desc_demuxers; |
4765
d0c2c8af46b4
Demuxers demuxer support for using external audiofile (or muxed subtitles).
albeu
parents:
diff
changeset
|
36 |
d0c2c8af46b4
Demuxers demuxer support for using external audiofile (or muxed subtitles).
albeu
parents:
diff
changeset
|
37 demuxer_t* new_demuxers_demuxer(demuxer_t* vd, demuxer_t* ad, demuxer_t* sd) { |
33237
a8619bfabf84
Add a alloc_demuxer function that ensures all the critical stuff is
reimar
parents:
32604
diff
changeset
|
38 // Video is the most important :-) |
a8619bfabf84
Add a alloc_demuxer function that ensures all the critical stuff is
reimar
parents:
32604
diff
changeset
|
39 demuxer_t* ret = alloc_demuxer(vd->stream, DEMUXER_TYPE_DEMUXERS, vd->filename); |
36576
fb65d6e1a9b2
demux_demuxers: Simplify, merge declaration and initialization.
reimar
parents:
36575
diff
changeset
|
40 dd_priv_t* priv = malloc(sizeof(*priv)); |
4765
d0c2c8af46b4
Demuxers demuxer support for using external audiofile (or muxed subtitles).
albeu
parents:
diff
changeset
|
41 priv->vd = vd; |
d0c2c8af46b4
Demuxers demuxer support for using external audiofile (or muxed subtitles).
albeu
parents:
diff
changeset
|
42 priv->ad = ad; |
d0c2c8af46b4
Demuxers demuxer support for using external audiofile (or muxed subtitles).
albeu
parents:
diff
changeset
|
43 priv->sd = sd; |
d0c2c8af46b4
Demuxers demuxer support for using external audiofile (or muxed subtitles).
albeu
parents:
diff
changeset
|
44 ret->priv = priv; |
d0c2c8af46b4
Demuxers demuxer support for using external audiofile (or muxed subtitles).
albeu
parents:
diff
changeset
|
45 |
d0c2c8af46b4
Demuxers demuxer support for using external audiofile (or muxed subtitles).
albeu
parents:
diff
changeset
|
46 ret->type = ret->file_format = DEMUXER_TYPE_DEMUXERS; |
d0c2c8af46b4
Demuxers demuxer support for using external audiofile (or muxed subtitles).
albeu
parents:
diff
changeset
|
47 ret->seekable = vd->seekable && ad->seekable && sd->seekable; |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
29238
diff
changeset
|
48 |
4765
d0c2c8af46b4
Demuxers demuxer support for using external audiofile (or muxed subtitles).
albeu
parents:
diff
changeset
|
49 ret->video = vd->video; |
d0c2c8af46b4
Demuxers demuxer support for using external audiofile (or muxed subtitles).
albeu
parents:
diff
changeset
|
50 ret->audio = ad->audio; |
d0c2c8af46b4
Demuxers demuxer support for using external audiofile (or muxed subtitles).
albeu
parents:
diff
changeset
|
51 ret->sub = sd->sub; |
36575 | 52 if (sd->sub && sd != vd && sd != ad) sd->sub->non_interleaved = 1; |
29768
fa5a020677d6
Unbreak the demuxer-specific code in video.c with e.g.
reimar
parents:
29569
diff
changeset
|
53 |
fa5a020677d6
Unbreak the demuxer-specific code in video.c with e.g.
reimar
parents:
29569
diff
changeset
|
54 // without these, demux_demuxers_fill_buffer will never be called, |
fa5a020677d6
Unbreak the demuxer-specific code in video.c with e.g.
reimar
parents:
29569
diff
changeset
|
55 // but they break the demuxer-specific code in video.c |
fa5a020677d6
Unbreak the demuxer-specific code in video.c with e.g.
reimar
parents:
29569
diff
changeset
|
56 #if 0 |
29568
ccb7b7f4b764
Hack demux_demuxers so that demux_demuxers_fill_buffer is actually called.
reimar
parents:
29263
diff
changeset
|
57 if (vd) vd->video->demuxer = ret; |
ccb7b7f4b764
Hack demux_demuxers so that demux_demuxers_fill_buffer is actually called.
reimar
parents:
29263
diff
changeset
|
58 if (ad) ad->audio->demuxer = ret; |
ccb7b7f4b764
Hack demux_demuxers so that demux_demuxers_fill_buffer is actually called.
reimar
parents:
29263
diff
changeset
|
59 if (sd) sd->sub->demuxer = ret; |
29768
fa5a020677d6
Unbreak the demuxer-specific code in video.c with e.g.
reimar
parents:
29569
diff
changeset
|
60 #endif |
16175 | 61 |
26817
a0c157a99aac
Make internal subtitle and subtitle switching work with -audiofile
reimar
parents:
26297
diff
changeset
|
62 // HACK?, necessary for subtitle (and audio and video when implemented) switching |
a0c157a99aac
Make internal subtitle and subtitle switching work with -audiofile
reimar
parents:
26297
diff
changeset
|
63 memcpy(ret->v_streams, vd->v_streams, sizeof(ret->v_streams)); |
a0c157a99aac
Make internal subtitle and subtitle switching work with -audiofile
reimar
parents:
26297
diff
changeset
|
64 memcpy(ret->a_streams, ad->a_streams, sizeof(ret->a_streams)); |
a0c157a99aac
Make internal subtitle and subtitle switching work with -audiofile
reimar
parents:
26297
diff
changeset
|
65 memcpy(ret->s_streams, sd->s_streams, sizeof(ret->s_streams)); |
a0c157a99aac
Make internal subtitle and subtitle switching work with -audiofile
reimar
parents:
26297
diff
changeset
|
66 |
4765
d0c2c8af46b4
Demuxers demuxer support for using external audiofile (or muxed subtitles).
albeu
parents:
diff
changeset
|
67 return ret; |
d0c2c8af46b4
Demuxers demuxer support for using external audiofile (or muxed subtitles).
albeu
parents:
diff
changeset
|
68 } |
d0c2c8af46b4
Demuxers demuxer support for using external audiofile (or muxed subtitles).
albeu
parents:
diff
changeset
|
69 |
16175 | 70 static int demux_demuxers_fill_buffer(demuxer_t *demux,demux_stream_t *ds) { |
4765
d0c2c8af46b4
Demuxers demuxer support for using external audiofile (or muxed subtitles).
albeu
parents:
diff
changeset
|
71 dd_priv_t* priv; |
d0c2c8af46b4
Demuxers demuxer support for using external audiofile (or muxed subtitles).
albeu
parents:
diff
changeset
|
72 |
d0c2c8af46b4
Demuxers demuxer support for using external audiofile (or muxed subtitles).
albeu
parents:
diff
changeset
|
73 priv=demux->priv; |
d0c2c8af46b4
Demuxers demuxer support for using external audiofile (or muxed subtitles).
albeu
parents:
diff
changeset
|
74 |
29569
3e13839031b3
Add a hack to ensure data from e.g. mov format -subfile gets read at all
reimar
parents:
29568
diff
changeset
|
75 // HACK: make sure the subtitles get properly interleaved if with -subfile |
3e13839031b3
Add a hack to ensure data from e.g. mov format -subfile gets read at all
reimar
parents:
29568
diff
changeset
|
76 if (priv->sd && priv->sd->sub != ds && |
3e13839031b3
Add a hack to ensure data from e.g. mov format -subfile gets read at all
reimar
parents:
29568
diff
changeset
|
77 priv->sd != priv->vd && priv->sd != priv->ad) |
3e13839031b3
Add a hack to ensure data from e.g. mov format -subfile gets read at all
reimar
parents:
29568
diff
changeset
|
78 ds_get_next_pts(priv->sd->sub); |
29568
ccb7b7f4b764
Hack demux_demuxers so that demux_demuxers_fill_buffer is actually called.
reimar
parents:
29263
diff
changeset
|
79 if(priv->vd && priv->vd->video == ds) |
4765
d0c2c8af46b4
Demuxers demuxer support for using external audiofile (or muxed subtitles).
albeu
parents:
diff
changeset
|
80 return demux_fill_buffer(priv->vd,ds); |
29568
ccb7b7f4b764
Hack demux_demuxers so that demux_demuxers_fill_buffer is actually called.
reimar
parents:
29263
diff
changeset
|
81 else if(priv->ad && priv->ad->audio == ds) |
4765
d0c2c8af46b4
Demuxers demuxer support for using external audiofile (or muxed subtitles).
albeu
parents:
diff
changeset
|
82 return demux_fill_buffer(priv->ad,ds); |
29568
ccb7b7f4b764
Hack demux_demuxers so that demux_demuxers_fill_buffer is actually called.
reimar
parents:
29263
diff
changeset
|
83 else if(priv->sd && priv->sd->sub == ds) |
4765
d0c2c8af46b4
Demuxers demuxer support for using external audiofile (or muxed subtitles).
albeu
parents:
diff
changeset
|
84 return demux_fill_buffer(priv->sd,ds); |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
29238
diff
changeset
|
85 |
18176
f72bc5754209
Part3 of Otvos Attila's oattila AT chello-hu mp_msg changes, with lots of modifications as usual
reynaldo
parents:
17636
diff
changeset
|
86 mp_msg(MSGT_DEMUX,MSGL_WARN,MSGTR_MPDEMUX_DEMUXERS_FillBufferError); |
4765
d0c2c8af46b4
Demuxers demuxer support for using external audiofile (or muxed subtitles).
albeu
parents:
diff
changeset
|
87 return 0; |
d0c2c8af46b4
Demuxers demuxer support for using external audiofile (or muxed subtitles).
albeu
parents:
diff
changeset
|
88 } |
d0c2c8af46b4
Demuxers demuxer support for using external audiofile (or muxed subtitles).
albeu
parents:
diff
changeset
|
89 |
17636 | 90 static void demux_demuxers_seek(demuxer_t *demuxer,float rel_seek_secs,float audio_delay,int flags) { |
4765
d0c2c8af46b4
Demuxers demuxer support for using external audiofile (or muxed subtitles).
albeu
parents:
diff
changeset
|
91 dd_priv_t* priv; |
d0c2c8af46b4
Demuxers demuxer support for using external audiofile (or muxed subtitles).
albeu
parents:
diff
changeset
|
92 float pos; |
d0c2c8af46b4
Demuxers demuxer support for using external audiofile (or muxed subtitles).
albeu
parents:
diff
changeset
|
93 priv=demuxer->priv; |
d0c2c8af46b4
Demuxers demuxer support for using external audiofile (or muxed subtitles).
albeu
parents:
diff
changeset
|
94 |
d0c2c8af46b4
Demuxers demuxer support for using external audiofile (or muxed subtitles).
albeu
parents:
diff
changeset
|
95 priv->ad->stream->eof = 0; |
d0c2c8af46b4
Demuxers demuxer support for using external audiofile (or muxed subtitles).
albeu
parents:
diff
changeset
|
96 priv->sd->stream->eof = 0; |
d0c2c8af46b4
Demuxers demuxer support for using external audiofile (or muxed subtitles).
albeu
parents:
diff
changeset
|
97 |
d0c2c8af46b4
Demuxers demuxer support for using external audiofile (or muxed subtitles).
albeu
parents:
diff
changeset
|
98 // Seek video |
17636 | 99 demux_seek(priv->vd,rel_seek_secs,audio_delay,flags); |
4765
d0c2c8af46b4
Demuxers demuxer support for using external audiofile (or muxed subtitles).
albeu
parents:
diff
changeset
|
100 // Get the new pos |
d0c2c8af46b4
Demuxers demuxer support for using external audiofile (or muxed subtitles).
albeu
parents:
diff
changeset
|
101 pos = demuxer->video->pts; |
20071
672123d27ae3
Fix demux_demuxers seeking if the video demuxer does not set
reimar
parents:
18958
diff
changeset
|
102 if (!pos) { |
33238
b09a5d9ff050
Call demux_fill_buffer multiple times when trying to get a
reimar
parents:
33237
diff
changeset
|
103 // since the video demuxer might provide multiple |
b09a5d9ff050
Call demux_fill_buffer multiple times when trying to get a
reimar
parents:
33237
diff
changeset
|
104 // streams (e.g. subs) we might have to call |
b09a5d9ff050
Call demux_fill_buffer multiple times when trying to get a
reimar
parents:
33237
diff
changeset
|
105 // demux_fill_buffer multiple times. |
b09a5d9ff050
Call demux_fill_buffer multiple times when trying to get a
reimar
parents:
33237
diff
changeset
|
106 int limit = 10; |
b09a5d9ff050
Call demux_fill_buffer multiple times when trying to get a
reimar
parents:
33237
diff
changeset
|
107 do { |
b09a5d9ff050
Call demux_fill_buffer multiple times when trying to get a
reimar
parents:
33237
diff
changeset
|
108 demux_fill_buffer(priv->vd, demuxer->video); |
b09a5d9ff050
Call demux_fill_buffer multiple times when trying to get a
reimar
parents:
33237
diff
changeset
|
109 } while (--limit && !demuxer->video->first); |
20071
672123d27ae3
Fix demux_demuxers seeking if the video demuxer does not set
reimar
parents:
18958
diff
changeset
|
110 if (demuxer->video->first) |
672123d27ae3
Fix demux_demuxers seeking if the video demuxer does not set
reimar
parents:
18958
diff
changeset
|
111 pos = demuxer->video->first->pts; |
672123d27ae3
Fix demux_demuxers seeking if the video demuxer does not set
reimar
parents:
18958
diff
changeset
|
112 } |
4765
d0c2c8af46b4
Demuxers demuxer support for using external audiofile (or muxed subtitles).
albeu
parents:
diff
changeset
|
113 |
32604 | 114 if(priv->ad != priv->vd && demuxer->audio->sh) { |
26297 | 115 sh_audio_t* sh = demuxer->audio->sh; |
17636 | 116 demux_seek(priv->ad,pos,audio_delay,1); |
4765
d0c2c8af46b4
Demuxers demuxer support for using external audiofile (or muxed subtitles).
albeu
parents:
diff
changeset
|
117 // In case the demuxer don't set pts |
d0c2c8af46b4
Demuxers demuxer support for using external audiofile (or muxed subtitles).
albeu
parents:
diff
changeset
|
118 if(!demuxer->audio->pts) |
d0c2c8af46b4
Demuxers demuxer support for using external audiofile (or muxed subtitles).
albeu
parents:
diff
changeset
|
119 demuxer->audio->pts = pos-((ds_tell_pts(demuxer->audio)-sh->a_in_buffer_len)/(float)sh->i_bps); |
d0c2c8af46b4
Demuxers demuxer support for using external audiofile (or muxed subtitles).
albeu
parents:
diff
changeset
|
120 } |
d0c2c8af46b4
Demuxers demuxer support for using external audiofile (or muxed subtitles).
albeu
parents:
diff
changeset
|
121 |
d0c2c8af46b4
Demuxers demuxer support for using external audiofile (or muxed subtitles).
albeu
parents:
diff
changeset
|
122 if(priv->sd != priv->vd) |
17636 | 123 demux_seek(priv->sd,pos,audio_delay,1); |
4765
d0c2c8af46b4
Demuxers demuxer support for using external audiofile (or muxed subtitles).
albeu
parents:
diff
changeset
|
124 |
d0c2c8af46b4
Demuxers demuxer support for using external audiofile (or muxed subtitles).
albeu
parents:
diff
changeset
|
125 } |
5812 | 126 |
16175 | 127 static void demux_close_demuxers(demuxer_t* demuxer) { |
5812 | 128 dd_priv_t* priv = demuxer->priv; |
9710 | 129 stream_t *s; |
5812 | 130 |
131 if(priv->vd) | |
132 free_demuxer(priv->vd); | |
9710 | 133 if(priv->ad && priv->ad != priv->vd) { |
134 // That's a hack to free the audio file stream | |
135 // It's ok atm but we shouldn't free that here | |
136 s = priv->ad->stream; | |
5812 | 137 free_demuxer(priv->ad); |
9710 | 138 free_stream(s); |
139 } if(priv->sd && priv->sd != priv->vd && priv->sd != priv->ad) { | |
140 s = priv->sd->stream; | |
5812 | 141 free_demuxer(priv->sd); |
9710 | 142 free_stream(s); |
143 } | |
5812 | 144 |
145 free(priv); | |
146 } | |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
29238
diff
changeset
|
147 |
16175 | 148 |
16876
9dd44ff7ec32
Provide DEMUXER_CTRL_GET_TIME_LENGTH and DEMUXER_CTRL_GET_PERCENT_POS.
reimar
parents:
16291
diff
changeset
|
149 static int demux_demuxers_control(demuxer_t *demuxer,int cmd, void *arg){ |
9dd44ff7ec32
Provide DEMUXER_CTRL_GET_TIME_LENGTH and DEMUXER_CTRL_GET_PERCENT_POS.
reimar
parents:
16291
diff
changeset
|
150 dd_priv_t* priv = demuxer->priv; |
9dd44ff7ec32
Provide DEMUXER_CTRL_GET_TIME_LENGTH and DEMUXER_CTRL_GET_PERCENT_POS.
reimar
parents:
16291
diff
changeset
|
151 switch (cmd) { |
9dd44ff7ec32
Provide DEMUXER_CTRL_GET_TIME_LENGTH and DEMUXER_CTRL_GET_PERCENT_POS.
reimar
parents:
16291
diff
changeset
|
152 case DEMUXER_CTRL_GET_TIME_LENGTH: |
9dd44ff7ec32
Provide DEMUXER_CTRL_GET_TIME_LENGTH and DEMUXER_CTRL_GET_PERCENT_POS.
reimar
parents:
16291
diff
changeset
|
153 *((double *)arg) = demuxer_get_time_length(priv->vd); |
9dd44ff7ec32
Provide DEMUXER_CTRL_GET_TIME_LENGTH and DEMUXER_CTRL_GET_PERCENT_POS.
reimar
parents:
16291
diff
changeset
|
154 return DEMUXER_CTRL_OK; |
9dd44ff7ec32
Provide DEMUXER_CTRL_GET_TIME_LENGTH and DEMUXER_CTRL_GET_PERCENT_POS.
reimar
parents:
16291
diff
changeset
|
155 case DEMUXER_CTRL_GET_PERCENT_POS: |
9dd44ff7ec32
Provide DEMUXER_CTRL_GET_TIME_LENGTH and DEMUXER_CTRL_GET_PERCENT_POS.
reimar
parents:
16291
diff
changeset
|
156 *((int *)arg) = demuxer_get_percent_pos(priv->vd); |
9dd44ff7ec32
Provide DEMUXER_CTRL_GET_TIME_LENGTH and DEMUXER_CTRL_GET_PERCENT_POS.
reimar
parents:
16291
diff
changeset
|
157 return DEMUXER_CTRL_OK; |
33239
6cb191a2cc1a
Pass through correct-pts setting from video sub demuxer.
reimar
parents:
33238
diff
changeset
|
158 case DEMUXER_CTRL_CORRECT_PTS: |
6cb191a2cc1a
Pass through correct-pts setting from video sub demuxer.
reimar
parents:
33238
diff
changeset
|
159 return demux_control(priv->vd, DEMUXER_CTRL_CORRECT_PTS, NULL); |
16876
9dd44ff7ec32
Provide DEMUXER_CTRL_GET_TIME_LENGTH and DEMUXER_CTRL_GET_PERCENT_POS.
reimar
parents:
16291
diff
changeset
|
160 } |
9dd44ff7ec32
Provide DEMUXER_CTRL_GET_TIME_LENGTH and DEMUXER_CTRL_GET_PERCENT_POS.
reimar
parents:
16291
diff
changeset
|
161 return DEMUXER_CTRL_NOTIMPL; |
9dd44ff7ec32
Provide DEMUXER_CTRL_GET_TIME_LENGTH and DEMUXER_CTRL_GET_PERCENT_POS.
reimar
parents:
16291
diff
changeset
|
162 } |
9dd44ff7ec32
Provide DEMUXER_CTRL_GET_TIME_LENGTH and DEMUXER_CTRL_GET_PERCENT_POS.
reimar
parents:
16291
diff
changeset
|
163 |
25707
d4fe6e23283e
Make all demuxer_desc_t const, thus moving them to .rodata
reimar
parents:
22605
diff
changeset
|
164 const demuxer_desc_t demuxer_desc_demuxers = { |
16175 | 165 "Demuxers demuxer", |
166 "", // Not selectable | |
167 "", | |
168 "?", | |
169 "internal use only", | |
170 DEMUXER_TYPE_DEMUXERS, | |
171 0, // no autodetect | |
172 NULL, | |
173 demux_demuxers_fill_buffer, | |
174 NULL, | |
175 demux_close_demuxers, | |
176 demux_demuxers_seek, | |
16876
9dd44ff7ec32
Provide DEMUXER_CTRL_GET_TIME_LENGTH and DEMUXER_CTRL_GET_PERCENT_POS.
reimar
parents:
16291
diff
changeset
|
177 demux_demuxers_control |
16175 | 178 }; |