Mercurial > mplayer.hg
comparison libmpdemux/demux_avs.c @ 19213:606d2f7cd307
Move more stuff under if (avs_has_video... to simplify later patches.
author | reimar |
---|---|
date | Fri, 28 Jul 2006 15:04:10 +0000 |
parents | 6b8bbb271594 |
children | 668f0209df77 |
comparison
equal
deleted
inserted
replaced
19212:6b8bbb271594 | 19213:606d2f7cd307 |
---|---|
172 AVS_T *AVS = (AVS_T *) demuxer->priv; | 172 AVS_T *AVS = (AVS_T *) demuxer->priv; |
173 | 173 |
174 demux_stream_t *d_video=demuxer->video; | 174 demux_stream_t *d_video=demuxer->video; |
175 sh_video_t *sh_video=d_video->sh; | 175 sh_video_t *sh_video=d_video->sh; |
176 | 176 |
177 if (avs_has_video(AVS->video_info)) | |
178 { | |
177 if (AVS->video_info->num_frames < AVS->frameno) return 0; // EOF | 179 if (AVS->video_info->num_frames < AVS->frameno) return 0; // EOF |
178 | 180 |
179 curr_frame = AVS->avs_get_frame(AVS->clip, AVS->frameno); | 181 curr_frame = AVS->avs_get_frame(AVS->clip, AVS->frameno); |
180 if (!curr_frame) | 182 if (!curr_frame) |
181 { | 183 { |
182 mp_msg(MSGT_DEMUX, MSGL_V, "AVS: error getting frame -- EOF??\n"); | 184 mp_msg(MSGT_DEMUX, MSGL_V, "AVS: error getting frame -- EOF??\n"); |
183 return 0; | 185 return 0; |
184 } | 186 } |
185 | 187 |
186 if (avs_has_video(AVS->video_info)) | |
187 { | |
188 dp = new_demux_packet(curr_frame->vfb->data_size); | 188 dp = new_demux_packet(curr_frame->vfb->data_size); |
189 sh_video->num_frames_decoded++; | 189 sh_video->num_frames_decoded++; |
190 sh_video->num_frames++; | 190 sh_video->num_frames++; |
191 | 191 |
192 dp->pts=AVS->frameno / sh_video->fps; | 192 dp->pts=AVS->frameno / sh_video->fps; |
193 | 193 |
194 memcpy(dp->buffer, curr_frame->vfb->data + curr_frame->offset, curr_frame->vfb->data_size); | 194 memcpy(dp->buffer, curr_frame->vfb->data + curr_frame->offset, curr_frame->vfb->data_size); |
195 ds_add_packet(demuxer->video, dp); | 195 ds_add_packet(demuxer->video, dp); |
196 | 196 |
197 AVS->frameno++; | |
198 AVS->avs_release_video_frame(curr_frame); | |
197 } | 199 } |
198 | 200 |
199 #ifdef ENABLE_AUDIO | 201 #ifdef ENABLE_AUDIO |
200 /* Audio */ | 202 /* Audio */ |
201 if (avs_has_audio(AVS->video_info)) | 203 if (avs_has_audio(AVS->video_info)) |
212 } | 214 } |
213 ds_add_packet(demuxer->audio, dp); | 215 ds_add_packet(demuxer->audio, dp); |
214 } | 216 } |
215 #endif | 217 #endif |
216 | 218 |
217 AVS->frameno++; | |
218 AVS->avs_release_video_frame(curr_frame); | |
219 return 1; | 219 return 1; |
220 } | 220 } |
221 | 221 |
222 static demuxer_t* demux_open_avs(demuxer_t* demuxer) | 222 static demuxer_t* demux_open_avs(demuxer_t* demuxer) |
223 { | 223 { |