X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;ds=sidebyside;f=cinelerra-5.1%2Fcinelerra%2Fdevicempeginput.C;h=056da30ac357d3f89085bf3f940889b867f3462f;hb=a19a685a46ddc630010788707d9e5b9d2342af46;hp=93a71e8bbebedff1c7b07d19bf5dd562d45f1752;hpb=235c9cc4df8306babbbfda46189108fe262d44ef;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/cinelerra/devicempeginput.C b/cinelerra-5.1/cinelerra/devicempeginput.C index 93a71e8b..056da30a 100644 --- a/cinelerra-5.1/cinelerra/devicempeginput.C +++ b/cinelerra-5.1/cinelerra/devicempeginput.C @@ -2,21 +2,21 @@ /* * CINELERRA * Copyright (C) 2008 Adam Williams - * + * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. - * + * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * + * */ @@ -415,36 +415,40 @@ int DeviceMPEGInput::set_channel(Channel *channel) void DeviceMPEGInput::set_captioning(int strk) { - mLock holds(decoder_lock); + decoder_lock->lock("DeviceMPEGInput::set_captioning"); captioning = strk; if( src && video_stream >= 0 ) src->show_subtitle(video_stream, strk); + decoder_lock->unlock(); } int DeviceMPEGInput::drop_frames(int frames) { - mLock holds(decoder_lock); + decoder_lock->lock("DeviceMPEGInput::drop_frames"); double result = -1.; if( src && video_stream >= 0 ) result = src->drop_frames(frames,video_stream); + decoder_lock->unlock(); return result; } double DeviceMPEGInput::audio_timestamp() { - mLock holds(decoder_lock); + decoder_lock->lock("DeviceMPEGInput::audio_timestamp"); double result = -1.; if( src && audio_stream >= 0 ) result = src->get_audio_time(audio_stream); + decoder_lock->unlock(); return result; } double DeviceMPEGInput::video_timestamp() { - mLock holds(decoder_lock); + decoder_lock->lock("DeviceMPEGInput::video_timestamp"); double ret = -1.; if( src && video_stream >= 0 ) ret = src->get_video_time(video_stream); + decoder_lock->unlock(); return ret; } @@ -540,7 +544,7 @@ int DeviceMPEGInput::get_video_pid(int track) int DeviceMPEGInput::get_video_info(int track, int &pid, double &framerate, int &width, int &height, char *title) { - //mLock holds(decoder_lock); caller of callback holds lock + //caller of callback holds decoder_lock; if( !src ) return 1; pid = src->video_pid(track); framerate = src->frame_rate(track);