Ticket #2117: ticket_2117_attempt_2.diff
File ticket_2117_attempt_2.diff, 1.7 KB (added by , 18 years ago) |
---|
-
libs/libmythtv/avformatdecoder.cpp
325 325 delete [] audioSamples; 326 326 } 327 327 328 void AvFormatDecoder::CloseCo ntext()328 void AvFormatDecoder::CloseCodecs() 329 329 { 330 330 if (ic) 331 331 { … … 336 336 if (st->codec->codec) 337 337 avcodec_close(st->codec); 338 338 } 339 339 } 340 } 341 342 void AvFormatDecoder::CloseContext() 343 { 344 if (ic) 345 { 346 CloseCodecs(); 347 340 348 ic->iformat->flags |= AVFMT_NOFILE; 341 349 342 350 av_free(ic->pb.buffer); 343 351 av_close_input_file(ic); 344 352 ic = NULL; 345 353 } 354 346 355 d->DestroyMPEG2(); 347 356 h264_kf_seq->Reset(); 348 357 } … … 2621 2630 if (video_width > 0 && video_width != current_width && 2622 2631 !ringBuffer->DVD()->InStillFrame()) 2623 2632 { 2633 CloseCodecs(); 2624 2634 av_free_packet(pkt); 2625 av_find_stream_info(ic);2626 2635 ScanStreams(false); 2627 2636 allowedquit = true; 2628 2637 continue; -
libs/libmythtv/avformatdecoder.h
76 76 bool use_null_video_out, bool allow_libmpeg2 = true); 77 77 ~AvFormatDecoder(); 78 78 79 void CloseCodecs(); 79 80 void CloseContext(); 80 81 void Reset(void); 81 82 void Reset(bool reset_video_data = true, bool seek_reset = true);