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 {