diff --git a/libgeneric-pc/audio.cpp b/libgeneric-pc/audio.cpp index 15ea346..e90848f 100644 --- a/libgeneric-pc/audio.cpp +++ b/libgeneric-pc/audio.cpp @@ -61,11 +61,11 @@ static AVCodecParameters *p = NULL; #if LIBAVCODEC_VERSION_INT > AV_VERSION_INT(58, 133, 100) static void get_packet_defaults(AVPacket *pkt) { - memset(pkt, 0, sizeof(*pkt)); + memset(pkt, 0, sizeof(*pkt)); - pkt->pts = AV_NOPTS_VALUE; - pkt->dts = AV_NOPTS_VALUE; - pkt->pos = -1; + pkt->pts = AV_NOPTS_VALUE; + pkt->dts = AV_NOPTS_VALUE; + pkt->pos = -1; } #endif @@ -160,8 +160,7 @@ int cAudio::PrepareClipPlay(int ch, int srate, int bits, int le) hal_debug("%s ch %d srate %d bits %d le %d adevice %p\n", __func__, ch, srate, bits, le, adevice);; int driver; int byte_format = le ? AO_FMT_LITTLE : AO_FMT_BIG; - if (sformat.bits != bits || sformat.channels != ch || sformat.rate != srate || - sformat.byte_format != byte_format || adevice == NULL) + if (sformat.bits != bits || sformat.channels != ch || sformat.rate != srate || sformat.byte_format != byte_format || adevice == NULL) { driver = ao_default_driver_id(); sformat.bits = bits; @@ -173,10 +172,8 @@ int cAudio::PrepareClipPlay(int ch, int srate, int bits, int le) ao_close(adevice); adevice = ao_open_live(driver, &sformat, NULL); ao_info *ai = ao_driver_info(driver); - hal_info("%s: changed params ch %d srate %d bits %d le %d adevice %p\n", - __func__, ch, srate, bits, le, adevice);; - hal_info("libao driver: %d name '%s' short '%s' author '%s'\n", - driver, ai->name, ai->short_name, ai->author); + hal_info("%s: changed params ch %d srate %d bits %d le %d adevice %p\n", __func__, ch, srate, bits, le, adevice);; + hal_info("libao driver: %d name '%s' short '%s' author '%s'\n", driver, ai->name, ai->short_name, ai->author); } return 0; }; @@ -213,10 +210,10 @@ int cAudio::StopClip() void cAudio::getAudioInfo(int &type, int &layer, int &freq, int &bitrate, int &mode) { type = 0; - layer = 0; /* not used */ + layer = 0; /* not used */ freq = 0; - bitrate = 0; /* not used, but easy to get :-) */ - mode = 0; /* default: stereo */ + bitrate = 0; /* not used, but easy to get :-) */ + mode = 0; /* default: stereo */ printf("cAudio::getAudioInfo c %p\n", c); if (c) { @@ -256,37 +253,35 @@ void cAudio::getAudioInfo(int &type, int &layer, int &freq, int &bitrate, int &m switch (c->channel_layout) { case AV_CH_LAYOUT_MONO: - mode = 1; // "C" + mode = 1; // "C" break; case AV_CH_LAYOUT_STEREO: - mode = 2; // "L/R" + mode = 2; // "L/R" break; case AV_CH_LAYOUT_2_1: case AV_CH_LAYOUT_SURROUND: - mode = 3; // "L/C/R" + mode = 3; // "L/C/R" break; case AV_CH_LAYOUT_2POINT1: - mode = 4; // "L/R/S" + mode = 4; // "L/R/S" break; case AV_CH_LAYOUT_3POINT1: - mode = 5; // "L/C/R/S" + mode = 5; // "L/C/R/S" break; case AV_CH_LAYOUT_2_2: case AV_CH_LAYOUT_QUAD: - mode = 6; // "L/R/SL/SR" + mode = 6; // "L/R/SL/SR" break; case AV_CH_LAYOUT_5POINT0: case AV_CH_LAYOUT_5POINT1: - mode = 7; // "L/C/R/SL/SR" + mode = 7; // "L/C/R/SL/SR" break; default: - hal_info("%s: unknown ch_layout 0x%" PRIx64 "\n", - __func__, c->channel_layout); + hal_info("%s: unknown ch_layout 0x%" PRIx64 "\n", __func__, c->channel_layout); } } } - hal_debug("%s t: %d l: %d f: %d b: %d m: %d codec_id: %x\n", - __func__, type, layer, freq, bitrate, mode, c ? c->codec_id : -1); + hal_debug("%s t: %d l: %d f: %d b: %d m: %d codec_id: %x\n", __func__, type, layer, freq, bitrate, mode, c ? c->codec_id : -1); }; void cAudio::SetSRS(int /*iq_enable*/, int /*nmgr_enable*/, int /*iq_mode*/, int /*iq_level*/) @@ -329,7 +324,7 @@ int cAudio::my_read(uint8_t *buf, int buf_size) int tmp = 0; if (audioDecoder && bufpos < DMX_BUF_SZ - 4096) { - while (bufpos < buf_size && ++tmp < 20) /* retry max 20 times */ + while (bufpos < buf_size && ++tmp < 20) /* retry max 20 times */ { int ret = audioDemux->Read(dmxbuf + bufpos, DMX_BUF_SZ - bufpos, 10); if (ret > 0) @@ -396,11 +391,11 @@ void cAudio::run() #endif inp = av_find_input_format("mpegts"); AVIOContext *pIOCtx = avio_alloc_context(inbuf, INBUF_SIZE, // internal Buffer and its size - 0, // bWriteable (1=true,0=false) - NULL, // user data; will be passed to our callback functions - _my_read, // read callback - NULL, // write callback - NULL); // seek callback + 0, // bWriteable (1=true,0=false) + NULL, // user data; will be passed to our callback functions + _my_read, // read callback + NULL, // write callback + NULL); // seek callback avfc = avformat_alloc_context(); avfc->pb = pIOCtx; avfc->iformat = inp; @@ -450,11 +445,10 @@ void cAudio::run() goto out2; } /* output sample rate, channels, layout could be set here if necessary */ - o_ch = p->channels; /* 2 */ - o_sr = p->sample_rate; /* 48000 */ - o_layout = p->channel_layout; /* AV_CH_LAYOUT_STEREO */ - if (sformat.channels != o_ch || sformat.rate != o_sr || - sformat.byte_format != AO_FMT_NATIVE || sformat.bits != 16 || adevice == NULL) + o_ch = p->channels; /* 2 */ + o_sr = p->sample_rate; /* 48000 */ + o_layout = p->channel_layout; /* AV_CH_LAYOUT_STEREO */ + if (sformat.channels != o_ch || sformat.rate != o_sr || sformat.byte_format != AO_FMT_NATIVE || sformat.bits != 16 || adevice == NULL) { driver = ao_default_driver_id(); sformat.bits = 16; @@ -466,11 +460,9 @@ void cAudio::run() ao_close(adevice); adevice = ao_open_live(driver, &sformat, NULL); ai = ao_driver_info(driver); - hal_info("%s: changed params ch %d srate %d bits %d adevice %p\n", - __func__, o_ch, o_sr, 16, adevice); + hal_info("%s: changed params ch %d srate %d bits %d adevice %p\n", __func__, o_ch, o_sr, 16, adevice); if (ai) - hal_info("libao driver: %d name '%s' short '%s' author '%s'\n", - driver, ai->name, ai->short_name, ai->author); + hal_info("libao driver: %d name '%s' short '%s' author '%s'\n", driver, ai->name, ai->short_name, ai->author); } #if 0 hal_info(" driver options:"); @@ -479,12 +471,11 @@ void cAudio::run() fprintf(stderr, "\n"); #endif av_get_sample_fmt_string(tmp, sizeof(tmp), c->sample_fmt); - hal_info("decoding %s, sample_fmt %d (%s) sample_rate %d channels %d\n", - avcodec_get_name(p->codec_id), c->sample_fmt, tmp, p->sample_rate, p->channels); + hal_info("decoding %s, sample_fmt %d (%s) sample_rate %d channels %d\n", avcodec_get_name(p->codec_id), c->sample_fmt, tmp, p->sample_rate, p->channels); swr = swr_alloc_set_opts(swr, - o_layout, AV_SAMPLE_FMT_S16, o_sr, /* output */ - p->channel_layout, c->sample_fmt, p->sample_rate, /* input */ - 0, NULL); + o_layout, AV_SAMPLE_FMT_S16, o_sr, /* output */ + p->channel_layout, c->sample_fmt, p->sample_rate, /* input */ + 0, NULL); if (! swr) { hal_info("could not alloc resample context\n"); @@ -526,8 +517,7 @@ void cAudio::run() { hal_info("obuf_sz: %d old: %d\n", obuf_sz, obuf_sz_max); av_free(obuf); - if (av_samples_alloc(&obuf, &out_linesize, o_ch, - frame->nb_samples, AV_SAMPLE_FMT_S16, 1) < 0) + if (av_samples_alloc(&obuf, &out_linesize, o_ch, frame->nb_samples, AV_SAMPLE_FMT_S16, 1) < 0) { hal_info("av_samples_alloc failed\n"); av_packet_unref(&avpkt); @@ -535,8 +525,7 @@ void cAudio::run() } obuf_sz_max = obuf_sz; } - obuf_sz = swr_convert(swr, &obuf, obuf_sz, - (const uint8_t **)frame->extended_data, frame->nb_samples); + obuf_sz = swr_convert(swr, &obuf, obuf_sz, (const uint8_t **)frame->extended_data, frame->nb_samples); #if (LIBAVUTIL_VERSION_MAJOR < 54) curr_pts = av_frame_get_best_effort_timestamp(frame); #else diff --git a/libgeneric-pc/audio_lib.h b/libgeneric-pc/audio_lib.h index b2eed02..6beb0f0 100644 --- a/libgeneric-pc/audio_lib.h +++ b/libgeneric-pc/audio_lib.h @@ -42,16 +42,17 @@ typedef enum class cAudio : public OpenThreads::Thread { friend class cPlayback; + private: int fd; bool Muted; int clipfd; /* for pcm playback */ - int mixer_fd; /* if we are using the OSS mixer */ + int mixer_fd; /* if we are using the OSS mixer */ int mixer_num; /* oss mixer to use, if any */ int StreamType; - AUDIO_SYNC_MODE SyncMode; + AUDIO_SYNC_MODE SyncMode; bool started; bool thread_started; @@ -69,51 +70,27 @@ class cAudio : public OpenThreads::Thread /* construct & destruct */ cAudio(void *, void *, void *); ~cAudio(void); - int64_t getPts() - { - return curr_pts; - } + int64_t getPts() { return curr_pts; } - void *GetHandle() - { - return NULL; - }; + void *GetHandle() { return NULL; }; - void setAVInput(int /*val*/) - { - return; - }; + void setAVInput(int /*val*/) { return; }; /* shut up */ - int mute(bool remember = true) - { - return do_mute(true, remember); - }; - int unmute(bool remember = true) - { - return do_mute(false, remember); - }; + int mute(bool remember = true) { return do_mute(true, remember); }; + int unmute(bool remember = true) { return do_mute(false, remember); }; /* volume, min = 0, max = 255 */ int setVolume(unsigned int left, unsigned int right); - int getVolume(void) - { - return volume; - } - bool getMuteStatus(void) - { - return Muted; - }; + int getVolume(void) { return volume; } + bool getMuteStatus(void) { return Muted; }; /* start and stop audio */ int Start(void); int Stop(void); bool Pause(bool Pcm = true); void SetStreamType(int bypass); - int GetStreamType(void) - { - return StreamType; - } + int GetStreamType(void) { return StreamType; } void SetSyncMode(AVSYNC_TYPE Mode); /* select channels */ diff --git a/libgeneric-pc/clutterfb.cpp b/libgeneric-pc/clutterfb.cpp index f1bb790..e32b851 100644 --- a/libgeneric-pc/clutterfb.cpp +++ b/libgeneric-pc/clutterfb.cpp @@ -19,7 +19,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . - TODO: AV-Sync code is "experimental" at best + TODO: AV-Sync code is "experimental" at best */ #include "config.h" @@ -85,14 +85,14 @@ void GLFramebuffer::blit() GLFbPC::GLFbPC(int x, int y, std::vector &buf): mReInit(true), mShutDown(false), mInitDone(false) { osd_buf = &buf; - mState.width = x; + mState.width = x; mState.height = y; mX = &_mX[0]; mY = &_mY[0]; *mX = x; *mY = y; av_reduce(&mOA.num, &mOA.den, x, y, INT_MAX); - mVA = mOA; /* initial aspect ratios are from the FB resolution, those */ + mVA = mOA; /* initial aspect ratios are from the FB resolution, those */ _mVA = mVA; /* will be updated by the videoDecoder functions anyway */ mVAchanged = true; mCrop = DISPLAY_AR_MODE_PANSCAN; @@ -142,10 +142,10 @@ void GLFbPC::initKeys() mKeyMap[CLUTTER_KEY_Left] = KEY_LEFT; mKeyMap[CLUTTER_KEY_Right] = KEY_RIGHT; - mKeyMap[CLUTTER_KEY_F1] = KEY_RED; - mKeyMap[CLUTTER_KEY_F2] = KEY_GREEN; - mKeyMap[CLUTTER_KEY_F3] = KEY_YELLOW; - mKeyMap[CLUTTER_KEY_F4] = KEY_BLUE; + mKeyMap[CLUTTER_KEY_F1] = KEY_RED; + mKeyMap[CLUTTER_KEY_F2] = KEY_GREEN; + mKeyMap[CLUTTER_KEY_F3] = KEY_YELLOW; + mKeyMap[CLUTTER_KEY_F4] = KEY_BLUE; mKeyMap[CLUTTER_KEY_F5] = KEY_RECORD; mKeyMap[CLUTTER_KEY_F6] = KEY_PLAY; @@ -163,40 +163,40 @@ void GLFbPC::initKeys() mKeyMap[CLUTTER_KEY_Return] = KEY_OK; mKeyMap[CLUTTER_KEY_Escape] = KEY_EXIT; - mKeyMap['0'] = KEY_0; - mKeyMap['1'] = KEY_1; - mKeyMap['2'] = KEY_2; - mKeyMap['3'] = KEY_3; - mKeyMap['4'] = KEY_4; - mKeyMap['5'] = KEY_5; - mKeyMap['6'] = KEY_6; - mKeyMap['7'] = KEY_7; - mKeyMap['8'] = KEY_8; - mKeyMap['9'] = KEY_9; + mKeyMap['0'] = KEY_0; + mKeyMap['1'] = KEY_1; + mKeyMap['2'] = KEY_2; + mKeyMap['3'] = KEY_3; + mKeyMap['4'] = KEY_4; + mKeyMap['5'] = KEY_5; + mKeyMap['6'] = KEY_6; + mKeyMap['7'] = KEY_7; + mKeyMap['8'] = KEY_8; + mKeyMap['9'] = KEY_9; - mKeyMap['+'] = KEY_VOLUMEUP; - mKeyMap['-'] = KEY_VOLUMEDOWN; - mKeyMap['.'] = KEY_MUTE; - mKeyMap['a'] = KEY_AUDIO; - mKeyMap['e'] = KEY_EPG; - // ['f'] is reserved to toggle fullscreen; - mKeyMap['g'] = KEY_GAMES; - mKeyMap['h'] = KEY_HELP; - mKeyMap['i'] = KEY_INFO; - mKeyMap['m'] = KEY_MENU; - mKeyMap['p'] = KEY_POWER; - mKeyMap['r'] = KEY_RADIO; - mKeyMap['s'] = KEY_SUBTITLE; - mKeyMap['t'] = KEY_TV; - mKeyMap['v'] = KEY_VIDEO; - mKeyMap['z'] = KEY_SLEEP; + mKeyMap['+'] = KEY_VOLUMEUP; + mKeyMap['-'] = KEY_VOLUMEDOWN; + mKeyMap['.'] = KEY_MUTE; + mKeyMap['a'] = KEY_AUDIO; + mKeyMap['e'] = KEY_EPG; + // ['f'] is reserved to toggle fullscreen; + mKeyMap['g'] = KEY_GAMES; + mKeyMap['h'] = KEY_HELP; + mKeyMap['i'] = KEY_INFO; + mKeyMap['m'] = KEY_MENU; + mKeyMap['p'] = KEY_POWER; + mKeyMap['r'] = KEY_RADIO; + mKeyMap['s'] = KEY_SUBTITLE; + mKeyMap['t'] = KEY_TV; + mKeyMap['v'] = KEY_VIDEO; + mKeyMap['z'] = KEY_SLEEP; /* shift keys */ - mKeyMap['F'] = KEY_FAVORITES; - mKeyMap['M'] = KEY_MODE; - mKeyMap['S'] = KEY_SAT; - mKeyMap['T'] = KEY_TEXT; - mKeyMap['W'] = KEY_WWW; + mKeyMap['F'] = KEY_FAVORITES; + mKeyMap['M'] = KEY_MODE; + mKeyMap['S'] = KEY_SAT; + mKeyMap['T'] = KEY_TEXT; + mKeyMap['W'] = KEY_WWW; } static ClutterActor *stage = NULL; @@ -311,9 +311,9 @@ void GLFramebuffer::run() std::map::const_iterator i = glfb_priv->mKeyMap.find(key); if (i == glfb_priv->mKeyMap.end()) return true; - ev.code = i->second; + ev.code = i->second; ev.value = keystate; /* key own */ - ev.type = EV_KEY; + ev.type = EV_KEY; gettimeofday(&ev.time, NULL); hal_debug_c("GLFB::%s: pushing 0x%x\n", __func__, ev.code); ssize_t w = write(glfb_priv->input_fd, &ev, sizeof(ev)); @@ -353,8 +353,7 @@ void GLFbPC::render() // *mX = *mY * mOA.num / mOA.den; clutter_actor_set_size(stage, *mX, *mY); } - hal_info("%s: reinit mX:%d mY:%d xoff:%d yoff:%d fs %d\n", - __func__, *mX, *mY, xoff, yoff, mFullscreen); + hal_info("%s: reinit mX:%d mY:%d xoff:%d yoff:%d fs %d\n", __func__, *mX, *mY, xoff, yoff, mFullscreen); } mReInitLock.unlock(); @@ -378,11 +377,11 @@ void GLFbPC::render() switch (cmp) { default: - case INT_MIN: /* invalid */ - case 0: /* identical */ + case INT_MIN: /* invalid */ + case 0: /* identical */ hal_debug("%s: mVA == mOA (or fullscreen mode :-)\n", __func__); break; - case 1: /* mVA > mOA -- video is wider than display */ + case 1: /* mVA > mOA -- video is wider than display */ hal_debug("%s: mVA > mOA\n", __func__); switch (mCrop) { @@ -402,7 +401,7 @@ void GLFbPC::render() break; } break; - case -1: /* mVA < mOA -- video is taller than display */ + case -1: /* mVA < mOA -- video is taller than display */ hal_debug("%s: mVA < mOA\n", __func__); switch (mCrop) { @@ -518,5 +517,5 @@ void GLFbPC::bltDisplayBuffer() sleep_us = 1; } hal_debug("vpts: 0x%" PRIx64 " apts: 0x%" PRIx64 " diff: %6.3f sleep_us %d buf %d\n", - buf->pts(), apts, (buf->pts() - apts) / 90000.0, sleep_us, videoDecoder->buf_num); + buf->pts(), apts, (buf->pts() - apts) / 90000.0, sleep_us, videoDecoder->buf_num); } diff --git a/libgeneric-pc/dmx.cpp b/libgeneric-pc/dmx.cpp index 5927fbb..806dd7e 100644 --- a/libgeneric-pc/dmx.cpp +++ b/libgeneric-pc/dmx.cpp @@ -45,7 +45,7 @@ extern cVideo *videoDecoder; #define dmx_err(_errfmt, _errstr, _revents) do { \ hal_info("%s " _errfmt " fd:%d, ev:0x%x %s pid:0x%04hx flt:0x%02hx\n", \ - __func__, _errstr, fd, _revents, DMX_T[dmx_type], pid, flt); \ + __func__, _errstr, fd, _revents, DMX_T[dmx_type], pid, flt); \ } while(0); cDemux *videoDemux = NULL; @@ -113,13 +113,13 @@ bool cDemux::Open(DMX_CHANNEL_TYPE pes_type, void * /*hVideoBuffer*/, int uBuffe hal_info("%s %s: %m\n", __FUNCTION__, devname[devnum]); return false; } - hal_debug("%s #%d pes_type: %s(%d), uBufferSize: %d fd: %d\n", __func__, - num, DMX_T[pes_type], pes_type, uBufferSize, fd); + hal_debug("%s #%d pes_type: %s(%d), uBufferSize: %d fd: %d\n", + __func__, num, DMX_T[pes_type], pes_type, uBufferSize, fd); if (dmx_type == DMX_VIDEO_CHANNEL) - uBufferSize = 0x100000; /* 1MB */ + uBufferSize = 0x100000; /* 1MB */ if (dmx_type == DMX_AUDIO_CHANNEL) - uBufferSize = 0x10000; /* 64k */ + uBufferSize = 0x10000; /* 64k */ #if 0 if (!pesfds.empty()) { @@ -193,7 +193,7 @@ int cDemux::Read(unsigned char *buff, int len, int timeout) #if 0 if (len != 4095 && timeout != 100) fprintf(stderr, "cDemux::%s #%d fd: %d type: %s len: %d timeout: %d\n", - __FUNCTION__, num, fd, DMX_T[dmx_type], len, timeout); + __FUNCTION__, num, fd, DMX_T[dmx_type], len, timeout); #endif int rc; struct pollfd ufds; @@ -253,8 +253,8 @@ retry: } bool cDemux::sectionFilter(unsigned short _pid, const unsigned char *const filter, - const unsigned char *const mask, int len, int timeout, - const unsigned char *const negmask) + const unsigned char *const mask, int len, int timeout, + const unsigned char *const negmask) { struct dmx_sct_filter_params s_flt; memset(&s_flt, 0, sizeof(s_flt)); @@ -269,7 +269,7 @@ bool cDemux::sectionFilter(unsigned short _pid, const unsigned char *const filte s_flt.timeout = timeout; flt = filter[0]; memcpy(s_flt.filter.filter, filter, len); - memcpy(s_flt.filter.mask, mask, len); + memcpy(s_flt.filter.mask, mask, len); if (negmask != NULL) memcpy(s_flt.filter.mode, negmask, len); @@ -319,7 +319,7 @@ bool cDemux::sectionFilter(unsigned short _pid, const unsigned char *const filte /* 0x60 - 0x6F: event_information_section - other_transport_stream, schedule */ case 0x70: /* time_date_section */ s_flt.flags &= ~DMX_CHECK_CRC; /* section has no CRC */ - //s_flt.pid = 0x0014; + //s_flt.pid = 0x0014; to = 30000; break; case 0x71: /* running_status_section */ @@ -331,7 +331,7 @@ bool cDemux::sectionFilter(unsigned short _pid, const unsigned char *const filte to = 0; break; case 0x73: /* time_offset_section */ - //s_flt.pid = 0x0014; + //s_flt.pid = 0x0014; to = 30000; break; case 0x74: /* application_information_section */ @@ -359,8 +359,8 @@ bool cDemux::sectionFilter(unsigned short _pid, const unsigned char *const filte if (timeout == 0 && negmask == NULL) s_flt.timeout = to; - hal_debug("%s #%d pid:0x%04hx fd:%d type:%s len:%d to:%d flags:%x flt[0]:%02x\n", __func__, num, - pid, fd, DMX_T[dmx_type], len, s_flt.timeout, s_flt.flags, s_flt.filter.filter[0]); + hal_debug("%s #%d pid:0x%04hx fd:%d type:%s len:%d to:%d flags:%x flt[0]:%02x\n", + __func__, num, pid, fd, DMX_T[dmx_type], len, s_flt.timeout, s_flt.flags, s_flt.filter.filter[0]); if (debuglevel == 2) { @@ -368,10 +368,10 @@ bool cDemux::sectionFilter(unsigned short _pid, const unsigned char *const filte for (int i = 0; i < DMX_FILTER_SIZE; i++)fprintf(stderr, "%02hhx ", s_flt.filter.filter[i]); fprintf(stderr, "\n"); fprintf(stderr, "mask: "); - for (int i = 0; i < DMX_FILTER_SIZE; i++)fprintf(stderr, "%02hhx ", s_flt.filter.mask [i]); + for (int i = 0; i < DMX_FILTER_SIZE; i++)fprintf(stderr, "%02hhx ", s_flt.filter.mask[i]); fprintf(stderr, "\n"); fprintf(stderr, "mode: "); - for (int i = 0; i < DMX_FILTER_SIZE; i++)fprintf(stderr, "%02hhx ", s_flt.filter.mode [i]); + for (int i = 0; i < DMX_FILTER_SIZE; i++)fprintf(stderr, "%02hhx ", s_flt.filter.mode[i]); fprintf(stderr, "\n"); } @@ -391,7 +391,7 @@ bool cDemux::pesFilter(const unsigned short _pid) * this check originally is from tuxbox cvs but I'm not sure * what it is good for... if (pid <= 0x0001 && dmx_type != DMX_PCR_ONLY_CHANNEL) - return false; + return false; */ if ((pid >= 0x0002 && pid <= 0x000f) || pid >= 0x1fff) return false; @@ -401,7 +401,7 @@ bool cDemux::pesFilter(const unsigned short _pid) memset(&p_flt, 0, sizeof(p_flt)); p_flt.pid = pid; p_flt.output = DMX_OUT_DECODER; - p_flt.input = DMX_IN_FRONTEND; + p_flt.input = DMX_IN_FRONTEND; switch (dmx_type) { @@ -412,23 +412,23 @@ bool cDemux::pesFilter(const unsigned short _pid) break; case DMX_AUDIO_CHANNEL: p_flt.pes_type = DMX_PES_OTHER; - p_flt.output = DMX_OUT_TSDEMUX_TAP; - if (HAL_nodec) /* no need to demux if we don't decode... */ + p_flt.output = DMX_OUT_TSDEMUX_TAP; + if (HAL_nodec) /* no need to demux if we don't decode... */ return true; break; case DMX_VIDEO_CHANNEL: p_flt.pes_type = DMX_PES_OTHER; - p_flt.output = DMX_OUT_TSDEMUX_TAP; + p_flt.output = DMX_OUT_TSDEMUX_TAP; if (HAL_nodec) return true; break; case DMX_PES_CHANNEL: p_flt.pes_type = DMX_PES_OTHER; - p_flt.output = DMX_OUT_TAP; + p_flt.output = DMX_OUT_TAP; break; case DMX_TP_CHANNEL: p_flt.pes_type = DMX_PES_OTHER; - p_flt.output = DMX_OUT_TSDEMUX_TAP; + p_flt.output = DMX_OUT_TSDEMUX_TAP; break; default: hal_info("%s #%d invalid dmx_type %d!\n", __func__, num, dmx_type); diff --git a/libgeneric-pc/glfb.cpp b/libgeneric-pc/glfb.cpp index 74e3e80..7fe1a8b 100644 --- a/libgeneric-pc/glfb.cpp +++ b/libgeneric-pc/glfb.cpp @@ -19,7 +19,7 @@ based on Carjay's neutrino-hd-dvbapi work, see http://gitorious.org/neutrino-hd/neutrino-hd-dvbapi - TODO: AV-Sync code is "experimental" at best + TODO: AV-Sync code is "experimental" at best */ #include "config.h" @@ -83,14 +83,14 @@ void GLFramebuffer::blit() GLFbPC::GLFbPC(int x, int y, std::vector &buf): mReInit(true), mShutDown(false), mInitDone(false) { osd_buf = &buf; - mState.width = x; + mState.width = x; mState.height = y; mX = &_mX[0]; mY = &_mY[0]; *mX = x; *mY = y; av_reduce(&mOA.num, &mOA.den, x, y, INT_MAX); - mVA = mOA; /* initial aspect ratios are from the FB resolution, those */ + mVA = mOA; /* initial aspect ratios are from the FB resolution, those */ _mVA = mVA; /* will be updated by the videoDecoder functions anyway */ mVAchanged = true; mCrop = DISPLAY_AR_MODE_PANSCAN; @@ -165,40 +165,40 @@ void GLFbPC::initKeys() mKeyMap[0x0d] = KEY_OK; mKeyMap[0x1b] = KEY_EXIT; - mKeyMap['0'] = KEY_0; - mKeyMap['1'] = KEY_1; - mKeyMap['2'] = KEY_2; - mKeyMap['3'] = KEY_3; - mKeyMap['4'] = KEY_4; - mKeyMap['5'] = KEY_5; - mKeyMap['6'] = KEY_6; - mKeyMap['7'] = KEY_7; - mKeyMap['8'] = KEY_8; - mKeyMap['9'] = KEY_9; + mKeyMap['0'] = KEY_0; + mKeyMap['1'] = KEY_1; + mKeyMap['2'] = KEY_2; + mKeyMap['3'] = KEY_3; + mKeyMap['4'] = KEY_4; + mKeyMap['5'] = KEY_5; + mKeyMap['6'] = KEY_6; + mKeyMap['7'] = KEY_7; + mKeyMap['8'] = KEY_8; + mKeyMap['9'] = KEY_9; - mKeyMap['+'] = KEY_VOLUMEUP; - mKeyMap['-'] = KEY_VOLUMEDOWN; - mKeyMap['.'] = KEY_MUTE; - mKeyMap['a'] = KEY_AUDIO; - mKeyMap['e'] = KEY_EPG; - // ['f'] is reserved to toggle fullscreen; - mKeyMap['g'] = KEY_GAMES; - mKeyMap['h'] = KEY_HELP; - mKeyMap['i'] = KEY_INFO; - mKeyMap['m'] = KEY_MENU; - mKeyMap['p'] = KEY_POWER; - mKeyMap['r'] = KEY_RADIO; - mKeyMap['s'] = KEY_SUBTITLE; - mKeyMap['t'] = KEY_TV; - mKeyMap['v'] = KEY_VIDEO; - mKeyMap['z'] = KEY_SLEEP; + mKeyMap['+'] = KEY_VOLUMEUP; + mKeyMap['-'] = KEY_VOLUMEDOWN; + mKeyMap['.'] = KEY_MUTE; + mKeyMap['a'] = KEY_AUDIO; + mKeyMap['e'] = KEY_EPG; + // ['f'] is reserved to toggle fullscreen; + mKeyMap['g'] = KEY_GAMES; + mKeyMap['h'] = KEY_HELP; + mKeyMap['i'] = KEY_INFO; + mKeyMap['m'] = KEY_MENU; + mKeyMap['p'] = KEY_POWER; + mKeyMap['r'] = KEY_RADIO; + mKeyMap['s'] = KEY_SUBTITLE; + mKeyMap['t'] = KEY_TV; + mKeyMap['v'] = KEY_VIDEO; + mKeyMap['z'] = KEY_SLEEP; /* shift keys */ - mKeyMap['F'] = KEY_FAVORITES; - mKeyMap['M'] = KEY_MODE; - mKeyMap['S'] = KEY_SAT; - mKeyMap['T'] = KEY_TEXT; - mKeyMap['W'] = KEY_WWW; + mKeyMap['F'] = KEY_FAVORITES; + mKeyMap['M'] = KEY_MODE; + mKeyMap['S'] = KEY_SAT; + mKeyMap['T'] = KEY_TEXT; + mKeyMap['W'] = KEY_WWW; } void GLFramebuffer::run() @@ -226,7 +226,7 @@ void GLFramebuffer::run() if ((!GLEW_VERSION_1_5) || (!GLEW_EXT_pixel_buffer_object) || (!GLEW_ARB_texture_non_power_of_two)) { hal_info("GLFB: Sorry, your graphics card is not supported. " - "Needs at least OpenGL 1.5, pixel buffer objects and NPOT textures.\n"); + "Needs at least OpenGL 1.5, pixel buffer objects and NPOT textures.\n"); hal_info("incompatible graphics card: %m"); _exit(1); /* Life is hard */ } @@ -334,9 +334,9 @@ void GLFbPC::releaseGLObjects() std::map::const_iterator i = glfb_priv->mKeyMap.find(key); if (i == glfb_priv->mKeyMap.end()) return; - ev.code = i->second; + ev.code = i->second; ev.value = 1; /* key own */ - ev.type = EV_KEY; + ev.type = EV_KEY; gettimeofday(&ev.time, NULL); hal_debug_c("GLFB::%s: pushing 0x%x\n", __func__, ev.code); write(glfb_priv->input_fd, &ev, sizeof(ev)); @@ -351,9 +351,9 @@ void GLFbPC::releaseGLObjects() std::map::const_iterator i = glfb_priv->mSpecialMap.find(key); if (i == glfb_priv->mSpecialMap.end()) return; - ev.code = i->second; + ev.code = i->second; ev.value = 1; - ev.type = EV_KEY; + ev.type = EV_KEY; gettimeofday(&ev.time, NULL); hal_debug_c("GLFB::%s: pushing 0x%x\n", __func__, ev.code); write(glfb_priv->input_fd, &ev, sizeof(ev)); @@ -394,8 +394,7 @@ void GLFbPC::render() } else *mX = *mY * mOA.num / mOA.den; - hal_info("%s: reinit mX:%d mY:%d xoff:%d yoff:%d fs %d\n", - __func__, *mX, *mY, xoff, yoff, mFullscreen); + hal_info("%s: reinit mX:%d mY:%d xoff:%d yoff:%d fs %d\n", __func__, *mX, *mY, xoff, yoff, mFullscreen); glViewport(xoff, yoff, *mX, *mY); glMatrixMode(GL_PROJECTION); glLoadIdentity(); @@ -438,11 +437,11 @@ void GLFbPC::render() switch (cmp) { default: - case INT_MIN: /* invalid */ - case 0: /* identical */ + case INT_MIN: /* invalid */ + case 0: /* identical */ hal_debug("%s: mVA == mOA (or fullscreen mode :-)\n", __func__); break; - case 1: /* mVA > mOA -- video is wider than display */ + case 1: /* mVA > mOA -- video is wider than display */ hal_debug("%s: mVA > mOA\n", __func__); xscale = av_q2d(mVA) / av_q2d(mOA); switch (mCrop) @@ -459,7 +458,7 @@ void GLFbPC::render() break; } break; - case -1: /* mVA < mOA -- video is taller than display */ + case -1: /* mVA < mOA -- video is taller than display */ hal_debug("%s: mVA < mOA\n", __func__); xscale = av_q2d(mVA) / av_q2d(mOA); switch (mCrop) @@ -531,10 +530,10 @@ void GLFbPC::drawSquare(float size, float x_factor) { GLfloat vertices[] = { - 1.0f, 1.0f, + 1.0f, 1.0f, -1.0f, 1.0f, -1.0f, -1.0f, - 1.0f, -1.0f, + 1.0f, -1.0f, }; GLubyte indices[] = { 0, 1, 2, 3 }; @@ -546,11 +545,11 @@ void GLFbPC::drawSquare(float size, float x_factor) 0.0, 1.0, 1.0, 1.0, }; - if (x_factor > -99.0) /* x_factor == -100 => OSD */ + if (x_factor > -99.0) /* x_factor == -100 => OSD */ { if (videoDecoder && - videoDecoder->pig_x > 0 && videoDecoder->pig_y > 0 && - videoDecoder->pig_w > 0 && videoDecoder->pig_h > 0) + videoDecoder->pig_x > 0 && videoDecoder->pig_y > 0 && + videoDecoder->pig_w > 0 && videoDecoder->pig_h > 0) { /* these calculations even consider cropping and panscan mode * maybe this could be done with some clever opengl tricks? */ @@ -562,14 +561,14 @@ void GLFbPC::drawSquare(float size, float x_factor) double h = (double)videoDecoder->pig_h / h2; x += ((1.0l - x_factor * size) / 2.0l) * w / x_factor / size; y += ((size - 1.0l) / 2.0l) * h / size; - vertices[0] = x + w; /* top right x */ - vertices[1] = y; /* top right y */ - vertices[2] = x; /* top left x */ - vertices[3] = y; /* top left y */ - vertices[4] = x; /* bottom left x */ - vertices[5] = y - h; /* bottom left y */ - vertices[6] = vertices[0]; /* bottom right x */ - vertices[7] = vertices[5]; /* bottom right y */ + vertices[0] = x + w; /* top right x */ + vertices[1] = y; /* top right y */ + vertices[2] = x; /* top left x */ + vertices[3] = y; /* top left y */ + vertices[4] = x; /* bottom left x */ + vertices[5] = y - h; /* bottom left y */ + vertices[6] = vertices[0]; /* bottom right x */ + vertices[7] = vertices[5]; /* bottom right y */ } } else @@ -590,7 +589,7 @@ void GLFbPC::drawSquare(float size, float x_factor) void GLFbPC::bltOSDBuffer() { - /* FIXME: copy each time */ + /* FIXME: copy each time */ glBindBuffer(GL_PIXEL_UNPACK_BUFFER, mState.pbo); glBufferData(GL_PIXEL_UNPACK_BUFFER, osd_buf->size(), osd_buf->data(), GL_STREAM_DRAW_ARB); @@ -662,5 +661,5 @@ void GLFbPC::bltDisplayBuffer() sleep_us = 1; } hal_debug("vpts: 0x%" PRIx64 " apts: 0x%" PRIx64 " diff: %6.3f sleep_us %d buf %d\n", - buf->pts(), apts, (buf->pts() - apts) / 90000.0, sleep_us, videoDecoder->buf_num); + buf->pts(), apts, (buf->pts() - apts) / 90000.0, sleep_us, videoDecoder->buf_num); } diff --git a/libgeneric-pc/glfb_priv.h b/libgeneric-pc/glfb_priv.h index db21609..af49f26 100644 --- a/libgeneric-pc/glfb_priv.h +++ b/libgeneric-pc/glfb_priv.h @@ -46,7 +46,7 @@ class GLFbPC ~GLFbPC(); std::vector *getOSDBuffer() { - return osd_buf; /* pointer to OSD bounce buffer */ + return osd_buf; /* pointer to OSD bounce buffer */ } int getOSDWidth() { @@ -77,23 +77,23 @@ class GLFbPC fb_var_screeninfo si; int *mX; int *mY; - int _mX[2]; /* output window size */ - int _mY[2]; /* [0] = normal, [1] = fullscreen */ - AVRational mOA; /* output window aspect ratio */ - AVRational mVA; /* video aspect ratio */ - AVRational _mVA; /* for detecting changes in mVA */ + int _mX[2]; /* output window size */ + int _mY[2]; /* [0] = normal, [1] = fullscreen */ + AVRational mOA; /* output window aspect ratio */ + AVRational mVA; /* video aspect ratio */ + AVRational _mVA; /* for detecting changes in mVA */ bool mVAchanged; - float zoom; /* for cropping */ - float xscale; /* and aspect ratio */ - int mCrop; /* DISPLAY_AR_MODE */ + float zoom; /* for cropping */ + float xscale; /* and aspect ratio */ + int mCrop; /* DISPLAY_AR_MODE */ - bool mFullscreen; /* fullscreen? */ - bool mReInit; /* setup things for GL */ + bool mFullscreen; /* fullscreen? */ + bool mReInit; /* setup things for GL */ OpenThreads::Mutex mReInitLock; - bool mShutDown; /* if set main loop is left */ - bool mInitDone; /* condition predicate */ - // OpenThreads::Condition mInitCond; /* condition variable for init */ - // mutable OpenThreads::Mutex mMutex; /* lock our data */ + bool mShutDown; /* if set main loop is left */ + bool mInitDone; /* condition predicate */ + // OpenThreads::Condition mInitCond; /* condition variable for init */ + // mutable OpenThreads::Mutex mMutex; /* lock our data */ std::vector *osd_buf; /* silly bounce buffer */ @@ -108,36 +108,36 @@ class GLFbPC int64_t last_apts; void run(); - static void rendercb(); /* callback for GLUT */ - void render(); /* actual render function */ + static void rendercb(); /* callback for GLUT */ + void render(); /* actual render function */ #if USE_OPENGL static void keyboardcb(unsigned char key, int x, int y); static void specialcb(int key, int x, int y); static void resizecb(int w, int h); void checkReinit(int w, int h); /* e.g. in case window was resized */ - void setupGLObjects(); /* PBOs, textures and stuff */ + void setupGLObjects(); /* PBOs, textures and stuff */ void releaseGLObjects(); - void drawSquare(float size, float x_factor = 1); /* do not be square */ + void drawSquare(float size, float x_factor = 1); /* do not be square */ #endif #if USE_CLUTTER static bool keyboardcb(ClutterActor *actor, ClutterEvent *event, gpointer user_data); #endif - void initKeys(); /* setup key bindings for window */ + void initKeys(); /* setup key bindings for window */ #if 0 - void setupCtx(); /* create the window and make the context current */ - void setupOSDBuffer(); /* create the OSD buffer */ + void setupCtx(); /* create the window and make the context current */ + void setupOSDBuffer(); /* create the OSD buffer */ #endif struct { - int width; /* width and height, fixed for a framebuffer instance */ + int width; /* width and height, fixed for a framebuffer instance */ int height; bool blit; #if USE_OPENGL - GLuint osdtex; /* holds the OSD texture */ - GLuint pbo; /* PBO we use for transfer to texture */ - GLuint displaytex; /* holds the display texture */ + GLuint osdtex; /* holds the OSD texture */ + GLuint pbo; /* PBO we use for transfer to texture */ + GLuint displaytex; /* holds the display texture */ GLuint displaypbo; #endif } mState; diff --git a/libgeneric-pc/hardware_caps.c b/libgeneric-pc/hardware_caps.c index 5b5afa3..775459e 100644 --- a/libgeneric-pc/hardware_caps.c +++ b/libgeneric-pc/hardware_caps.c @@ -31,7 +31,7 @@ hw_caps_t *get_hwcaps(void) caps.can_pip = 1; caps.can_cpufreq = 0; - caps.can_shutdown = 1; /* for testing */ + caps.can_shutdown = 1; /* for testing */ caps.display_type = HW_DISPLAY_LINE_TEXT; caps.has_HDMI = 1; caps.display_xres = 8; diff --git a/libgeneric-pc/playback.cpp b/libgeneric-pc/playback.cpp index 9932b1c..60a10bf 100644 --- a/libgeneric-pc/playback.cpp +++ b/libgeneric-pc/playback.cpp @@ -21,7 +21,7 @@ bool cPlayback::Start(std::string filename, std::string headers) bool cPlayback::Start(char *filename, int vpid, int vtype, int apid, int ac3, int duration, std::string /*headers*/) { printf("%s:%s - filename=%s vpid=%u vtype=%d apid=%u ac3=%d duration=%i\n", - FILENAME, __func__, filename, vpid, vtype, apid, ac3, duration); + FILENAME, __func__, filename, vpid, vtype, apid, ac3, duration); return true; } diff --git a/libgeneric-pc/playback_gst.h b/libgeneric-pc/playback_gst.h index 1195017..0456375 100644 --- a/libgeneric-pc/playback_gst.h +++ b/libgeneric-pc/playback_gst.h @@ -81,18 +81,12 @@ class cPlayback int GetSubtitlePid(void); bool SetPosition(int position, bool absolute = false); void FindAllPids(int *apids, unsigned int *ac3flags, unsigned int *numpida, std::string *language); - void FindAllPids(uint16_t *apids, unsigned short *ac3flags, uint16_t *numpida, std::string *language) - { - FindAllPids((int *) apids, (unsigned int *) ac3flags, (unsigned int *) numpida, language); - }; + void FindAllPids(uint16_t *apids, unsigned short *ac3flags, uint16_t *numpida, std::string *language) { FindAllPids((int *) apids, (unsigned int *) ac3flags, (unsigned int *) numpida, language); }; void FindAllSubtitlePids(int *pids, unsigned int *numpids, std::string *language); void FindAllTeletextsubtitlePids(int *pids, unsigned int *numpidt, std::string *tlanguage, int *mags, int *pages); void RequestAbort(void); void FindAllSubs(int *pids, unsigned int *supported, unsigned int *numpida, std::string *language); - void FindAllSubs(uint16_t *pids, unsigned short *supported, uint16_t *numpida, std::string *language) - { - FindAllSubs((int *) pids, (unsigned int *) supported, (unsigned int *) numpida, language); - }; + void FindAllSubs(uint16_t *pids, unsigned short *supported, uint16_t *numpida, std::string *language) { FindAllSubs((int *) pids, (unsigned int *) supported, (unsigned int *) numpida, language); }; bool SelectSubtitles(int pid, std::string charset = ""); void GetTitles(std::vector &playlists, std::vector &titles, int ¤t); void SetTitle(int title); diff --git a/libgeneric-pc/playback_gst_01.cpp b/libgeneric-pc/playback_gst_01.cpp index 897838d..e9c5fde 100644 --- a/libgeneric-pc/playback_gst_01.cpp +++ b/libgeneric-pc/playback_gst_01.cpp @@ -110,14 +110,14 @@ GstBusSyncReply Gst_bus_call(GstBus *bus, GstMessage *msg, gpointer user_data) if (err->code == GST_STREAM_ERROR_CODEC_NOT_FOUND) { if (g_strrstr(sourceName, "videosink")) - hal_info_c("%s:%s - GST_MESSAGE_ERROR: videosink\n", FILENAME, __FUNCTION__); //FIXME: how shall playback handle this event??? + hal_info_c("%s:%s - GST_MESSAGE_ERROR: videosink\n", FILENAME, __FUNCTION__); // FIXME: how shall playback handle this event??? else if (g_strrstr(sourceName, "audiosink")) - hal_info_c("%s:%s - GST_MESSAGE_ERROR: audioSink\n", FILENAME, __FUNCTION__); //FIXME: how shall playback handle this event??? + hal_info_c("%s:%s - GST_MESSAGE_ERROR: audioSink\n", FILENAME, __FUNCTION__); // FIXME: how shall playback handle this event??? } } g_error_free(err); - end_eof = 1; // NOTE: just to exit + end_eof = 1; // NOTE: just to exit break; } @@ -132,7 +132,7 @@ GstBusSyncReply Gst_bus_call(GstBus *bus, GstMessage *msg, gpointer user_data) if (inf->domain == GST_STREAM_ERROR && inf->code == GST_STREAM_ERROR_DECODE) { if (g_strrstr(sourceName, "videosink")) - hal_info_c("%s:%s - GST_MESSAGE_INFO: videosink\n", FILENAME, __FUNCTION__); //FIXME: how shall playback handle this event??? + hal_info_c("%s:%s - GST_MESSAGE_INFO: videosink\n", FILENAME, __FUNCTION__); // FIXME: how shall playback handle this event??? } g_error_free(inf); break; @@ -166,7 +166,7 @@ GstBusSyncReply Gst_bus_call(GstBus *bus, GstMessage *msg, gpointer user_data) //FIXME: how shall playback handle this event??? } gst_tag_list_free(tags); - hal_info_c("%s:%s - GST_MESSAGE_INFO: update info tags\n", FILENAME, __FUNCTION__); //FIXME: how shall playback handle this event??? + hal_info_c("%s:%s - GST_MESSAGE_INFO: update info tags\n", FILENAME, __FUNCTION__); // FIXME: how shall playback handle this event??? break; } @@ -188,7 +188,8 @@ GstBusSyncReply Gst_bus_call(GstBus *bus, GstMessage *msg, gpointer user_data) { case GST_STATE_CHANGE_NULL_TO_READY: { - } break; + } + break; case GST_STATE_CHANGE_READY_TO_PAUSED: { GstIterator *children; @@ -212,10 +213,12 @@ GstBusSyncReply Gst_bus_call(GstBus *bus, GstMessage *msg, gpointer user_data) break; case GST_STATE_CHANGE_PAUSED_TO_PLAYING: { - } break; + } + break; case GST_STATE_CHANGE_PLAYING_TO_PAUSED: { - } break; + } + break; case GST_STATE_CHANGE_PAUSED_TO_READY: { if (audioSink) @@ -232,7 +235,8 @@ GstBusSyncReply Gst_bus_call(GstBus *bus, GstMessage *msg, gpointer user_data) break; case GST_STATE_CHANGE_READY_TO_NULL: { - } break; + } + break; } break; } @@ -279,8 +283,7 @@ cPlayback::cPlayback(int num) nano_str = ""; hal_info("%s:%s - This program is linked against GStreamer %d.%d.%d %s\n", - FILENAME, __FUNCTION__, - major, minor, micro, nano_str); + FILENAME, __FUNCTION__, major, minor, micro, nano_str); mAudioStream = 0; mSpeed = 0; @@ -621,7 +624,7 @@ bool cPlayback::GetPosition(int &position, int &duration) unsigned long long int sec = 0; gst_element_query_position(m_gst_playbin, &fmt, &pts); - position = pts / 1000000.0; + position = pts / 1000000.0; // duration GstFormat fmt_d = GST_FORMAT_TIME; //Returns time in nanosecs @@ -709,17 +712,17 @@ void cPlayback::FindAllPids(int *apids, unsigned int *ac3flags, unsigned int *nu switch (mpegversion) { case 1: - /* - { - gst_structure_get_int (structure, "layer", &layer); - if ( layer == 3 ) - return atMP3; - else - return atMPEG; - ac3flags[0] = 4; - break; - } - */ + /* + { + gst_structure_get_int (structure, "layer", &layer); + if ( layer == 3 ) + return atMP3; + else + return atMPEG; + ac3flags[0] = 4; + break; + } + */ ac3flags[i] = 4; case 2: //return atAAC; diff --git a/libgeneric-pc/playback_gst_10.cpp b/libgeneric-pc/playback_gst_10.cpp index a1a0a60..b6e60a1 100644 --- a/libgeneric-pc/playback_gst_10.cpp +++ b/libgeneric-pc/playback_gst_10.cpp @@ -225,16 +225,16 @@ GstBusSyncReply Gst_bus_call(GstBus *bus, GstMessage *msg, gpointer user_data) if (err->code == GST_STREAM_ERROR_CODEC_NOT_FOUND) { if (g_strrstr(sourceName, "videosink")) - hal_info_c("%s:%s - GST_MESSAGE_ERROR: videosink\n", FILENAME, __FUNCTION__); //FIXME: how shall playback handle this event??? + hal_info_c("%s:%s - GST_MESSAGE_ERROR: videosink\n", FILENAME, __FUNCTION__); // FIXME: how shall playback handle this event??? else if (g_strrstr(sourceName, "audiosink")) - hal_info_c("%s:%s - GST_MESSAGE_ERROR: audioSink\n", FILENAME, __FUNCTION__); //FIXME: how shall playback handle this event??? + hal_info_c("%s:%s - GST_MESSAGE_ERROR: audioSink\n", FILENAME, __FUNCTION__); // FIXME: how shall playback handle this event??? } } g_error_free(err); if (sourceName) g_free(sourceName); - end_eof = 1; // NOTE: just to exit + end_eof = 1; // NOTE: just to exit break; } @@ -250,7 +250,7 @@ GstBusSyncReply Gst_bus_call(GstBus *bus, GstMessage *msg, gpointer user_data) { gchar *sourceName = gst_object_get_name(source); if (g_strrstr(sourceName, "videosink")) - hal_info_c("%s:%s - GST_MESSAGE_INFO: videosink\n", FILENAME, __FUNCTION__); //FIXME: how shall playback handle this event??? + hal_info_c("%s:%s - GST_MESSAGE_INFO: videosink\n", FILENAME, __FUNCTION__); // FIXME: how shall playback handle this event??? if (sourceName) g_free(sourceName); @@ -314,7 +314,7 @@ GstBusSyncReply Gst_bus_call(GstBus *bus, GstMessage *msg, gpointer user_data) } if (tags) gst_tag_list_unref(tags); - hal_debug_c("%s:%s - GST_MESSAGE_INFO: update info tags\n", FILENAME, __FUNCTION__); //FIXME: how shall playback handle this event??? + hal_debug_c("%s:%s - GST_MESSAGE_INFO: update info tags\n", FILENAME, __FUNCTION__); // FIXME: how shall playback handle this event??? break; } case GST_MESSAGE_ELEMENT: @@ -357,7 +357,8 @@ GstBusSyncReply Gst_bus_call(GstBus *bus, GstMessage *msg, gpointer user_data) { case GST_STATE_CHANGE_NULL_TO_READY: { - } break; + } + break; case GST_STATE_CHANGE_READY_TO_PAUSED: { GstIterator *children; @@ -396,10 +397,12 @@ GstBusSyncReply Gst_bus_call(GstBus *bus, GstMessage *msg, gpointer user_data) break; case GST_STATE_CHANGE_PAUSED_TO_PLAYING: { - } break; + } + break; case GST_STATE_CHANGE_PLAYING_TO_PAUSED: { - } break; + } + break; case GST_STATE_CHANGE_PAUSED_TO_READY: { if (audioSink) @@ -416,7 +419,8 @@ GstBusSyncReply Gst_bus_call(GstBus *bus, GstMessage *msg, gpointer user_data) break; case GST_STATE_CHANGE_READY_TO_NULL: { - } break; + } + break; } break; } @@ -453,8 +457,7 @@ cPlayback::cPlayback(int num) nano_str = ""; hal_info("%s:%s - This program is linked against GStreamer %d.%d.%d %s\n", - FILENAME, __FUNCTION__, - major, minor, micro, nano_str); + FILENAME, __FUNCTION__, major, minor, micro, nano_str); mAudioStream = 0; mSpeed = 0; @@ -599,7 +602,7 @@ bool cPlayback::Start(char *filename, int /*vpid*/, int /*vtype*/, int /*apid*/, hal_info("%s:%s - filename=%s\n", FILENAME, __FUNCTION__, filename); - guint flags = GST_PLAY_FLAG_AUDIO | GST_PLAY_FLAG_VIDEO | GST_PLAY_FLAG_NATIVE_VIDEO; + guint flags = GST_PLAY_FLAG_AUDIO | GST_PLAY_FLAG_VIDEO | GST_PLAY_FLAG_NATIVE_VIDEO; /* increase the default 2 second / 2 MB buffer limitations to 5s / 5MB */ int m_buffer_size = 5 * 1024 * 1024; @@ -849,7 +852,7 @@ bool cPlayback::GetPosition(int &position, int &duration) hal_info("%s - %d failed\n", __FUNCTION__, __LINE__); } } - position = pts / 1000000.0; + position = pts / 1000000.0; // duration GstFormat fmt_d = GST_FORMAT_TIME; //Returns time in nanosecs double length = 0; @@ -978,7 +981,7 @@ void cPlayback::FindAllPids(int *apids, unsigned int *ac3flags, unsigned int *nu if (caps) gst_caps_unref(caps); - //(ac3flags[i] > 2) ? ac3flags[i] = 1 : ac3flags[i] = 0; + //(ac3flags[i] > 2) ? ac3flags[i] = 1 : ac3flags[i] = 0; g_signal_emit_by_name(m_gst_playbin, "get-audio-tags", i, &tags); if (tags) diff --git a/libgeneric-pc/playback_lib.h b/libgeneric-pc/playback_lib.h index a623ad9..00f4560 100644 --- a/libgeneric-pc/playback_lib.h +++ b/libgeneric-pc/playback_lib.h @@ -19,6 +19,7 @@ class cPlayback int mAudioStream; int mSubtitleStream; int mTeletextStream; + public: cPlayback(int); bool Open(playmode_t PlayMode); @@ -28,15 +29,9 @@ class cPlayback bool SetAPid(int pid, bool ac3); bool SetSubtitlePid(int pid); bool SetTeletextPid(int pid); - int GetAPid(void) - { - return mAudioStream; - } + int GetAPid(void) { return mAudioStream; } int GetVPid(void); - int GetSubtitlePid(void) - { - return mSubtitleStream; - } + int GetSubtitlePid(void) { return mSubtitleStream; } int GetTeletextPid(void); void SuspendSubtitle(bool); int GetFirstTeletextPid(void); @@ -46,23 +41,14 @@ class cPlayback void GetPts(uint64_t &pts); bool SetPosition(int position, bool absolute = false); void FindAllPids(int *apids, unsigned int *ac3flags, unsigned int *numpida, std::string *language); - void FindAllPids(uint16_t *apids, unsigned short *ac3flags, uint16_t *numpida, std::string *language) - { - FindAllPids((int *) apids, (unsigned int *) ac3flags, (unsigned int *) numpida, language); - }; + void FindAllPids(uint16_t *apids, unsigned short *ac3flags, uint16_t *numpida, std::string *language) { FindAllPids((int *) apids, (unsigned int *) ac3flags, (unsigned int *) numpida, language); }; void FindAllSubtitlePids(int *pids, unsigned int *numpids, std::string *language); void FindAllTeletextsubtitlePids(int *pids, unsigned int *numpidt, std::string *tlanguage, int *mags, int *pages); void RequestAbort(void); - bool IsPlaying(void) - { - return false; - } + bool IsPlaying(void) { return false; } uint64_t GetReadCount(void); void FindAllSubs(int *pids, unsigned int *supported, unsigned int *numpida, std::string *language); - void FindAllSubs(uint16_t *pids, unsigned short *supported, uint16_t *numpida, std::string *language) - { - FindAllSubs((int *) pids, (unsigned int *) supported, (unsigned int *) numpida, language); - }; + void FindAllSubs(uint16_t *pids, unsigned short *supported, uint16_t *numpida, std::string *language) { FindAllSubs((int *) pids, (unsigned int *) supported, (unsigned int *) numpida, language); }; bool SelectSubtitles(int pid, std::string charset = ""); void GetTitles(std::vector &playlists, std::vector &titles, int ¤t); void SetTitle(int title); @@ -70,10 +56,7 @@ class cPlayback void GetMetadata(std::vector &keys, std::vector &values); // ~cPlayback(); - AVFormatContext *GetAVFormatContext() - { - return NULL; - } + AVFormatContext *GetAVFormatContext() { return NULL; } void ReleaseAVFormatContext() {} }; diff --git a/libgeneric-pc/video.cpp b/libgeneric-pc/video.cpp index 00fba06..30c3dbb 100644 --- a/libgeneric-pc/video.cpp +++ b/libgeneric-pc/video.cpp @@ -68,11 +68,11 @@ static int bufpos; #if LIBAVCODEC_VERSION_INT > AV_VERSION_INT(58, 133, 100) static void get_packet_defaults(AVPacket *pkt) { - memset(pkt, 0, sizeof(*pkt)); + memset(pkt, 0, sizeof(*pkt)); - pkt->pts = AV_NOPTS_VALUE; - pkt->dts = AV_NOPTS_VALUE; - pkt->pos = -1; + pkt->pts = AV_NOPTS_VALUE; + pkt->dts = AV_NOPTS_VALUE; + pkt->pos = -1; } #endif @@ -145,14 +145,14 @@ int cVideo::getAspectRatio(void) ar = w * 100 * a.num / h / a.den; if (ar < 100 || ar > 225) /* < 4:3, > 20:9 */ ; /* ret = 0: N/A */ - else if (ar < 140) /* 4:3 */ + else if (ar < 140) /* 4:3 */ ret = 1; - else if (ar < 165) /* 14:9 */ + else if (ar < 165) /* 14:9 */ ret = 2; - else if (ar < 200) /* 16:9 */ + else if (ar < 200) /* 16:9 */ ret = 3; else - ret = 4; /* 20:9 */ + ret = 4; /* 20:9 */ out: buf_m.unlock(); return ret; @@ -349,8 +349,8 @@ bool cVideo::ShowPicture(const char *fname) { unsigned int need = av_image_get_buffer_size(VDEC_PIXFMT, c->width, c->height, 1); struct SwsContext *convert = sws_getContext(c->width, c->height, c->pix_fmt, - c->width, c->height, VDEC_PIXFMT, - SWS_BICUBIC, 0, 0, 0); + c->width, c->height, VDEC_PIXFMT, + SWS_BICUBIC, 0, 0, 0); if (!convert) hal_info("%s: ERROR setting up SWS context\n", __func__); else @@ -360,9 +360,9 @@ bool cVideo::ShowPicture(const char *fname) if (f->size() < need) f->resize(need); av_image_fill_arrays(rgbframe->data, rgbframe->linesize, &(*f)[0], VDEC_PIXFMT, - c->width, c->height, 1); + c->width, c->height, 1); sws_scale(convert, frame->data, frame->linesize, 0, c->height, - rgbframe->data, rgbframe->linesize); + rgbframe->data, rgbframe->linesize); sws_freeContext(convert); f->width(c->width); f->height(c->height); @@ -485,7 +485,7 @@ static int my_read(void *, uint8_t *buf, int buf_size) int tmp = 0; if (videoDecoder && bufpos < DMX_BUF_SZ - 4096) { - while (bufpos < buf_size && ++tmp < 20) /* retry max 20 times */ + while (bufpos < buf_size && ++tmp < 20) /* retry max 20 times */ { int ret = videoDemux->Read(dmxbuf + bufpos, DMX_BUF_SZ - bufpos, 20); if (ret > 0) @@ -541,11 +541,11 @@ void cVideo::run(void) #endif inp = av_find_input_format("mpegts"); AVIOContext *pIOCtx = avio_alloc_context(inbuf, INBUF_SIZE, // internal Buffer and its size - 0, // bWriteable (1=true,0=false) - NULL, // user data; will be passed to our callback functions - my_read, // read callback - NULL, // write callback - NULL); // seek callback + 0, // bWriteable (1=true,0=false) + NULL, // user data; will be passed to our callback functions + my_read, // read callback + NULL, // write callback + NULL); // seek callback avfc = avformat_alloc_context(); avfc->pb = pIOCtx; avfc->iformat = inp; @@ -639,9 +639,9 @@ void cVideo::run(void) { unsigned int need = av_image_get_buffer_size(VDEC_PIXFMT, c->width, c->height, 1); convert = sws_getCachedContext(convert, - c->width, c->height, c->pix_fmt, - c->width, c->height, VDEC_PIXFMT, - SWS_BICUBIC, 0, 0, 0); + c->width, c->height, c->pix_fmt, + c->width, c->height, VDEC_PIXFMT, + SWS_BICUBIC, 0, 0, 0); if (!convert) hal_info("%s: ERROR setting up SWS context\n", __func__); else @@ -650,14 +650,11 @@ void cVideo::run(void) SWFramebuffer *f = &buffers[buf_in]; if (f->size() < need) f->resize(need); - av_image_fill_arrays(rgbframe->data, rgbframe->linesize, &(*f)[0], VDEC_PIXFMT, - c->width, c->height, 1); - sws_scale(convert, frame->data, frame->linesize, 0, c->height, - rgbframe->data, rgbframe->linesize); + av_image_fill_arrays(rgbframe->data, rgbframe->linesize, &(*f)[0], VDEC_PIXFMT, c->width, c->height, 1); + sws_scale(convert, frame->data, frame->linesize, 0, c->height, rgbframe->data, rgbframe->linesize); if (dec_w != c->width || dec_h != c->height) { - hal_info("%s: pic changed %dx%d -> %dx%d\n", __func__, - dec_w, dec_h, c->width, c->height); + hal_info("%s: pic changed %dx%d -> %dx%d\n", __func__, dec_w, dec_h, c->width, c->height); dec_w = c->width; dec_h = c->height; w_h_changed = true; @@ -697,13 +694,14 @@ void cVideo::run(void) dec_r = c->time_base.den / (c->time_base.num * c->ticks_per_frame); buf_m.unlock(); } - hal_debug("%s: time_base: %d/%d, ticks: %d rate: %d pts 0x%" PRIx64 "\n", __func__, - c->time_base.num, c->time_base.den, c->ticks_per_frame, dec_r, + hal_debug("%s: time_base: %d/%d, ticks: %d rate: %d pts 0x%" PRIx64 "\n", + __func__, c->time_base.num, c->time_base.den, c->ticks_per_frame, dec_r, #if (LIBAVUTIL_VERSION_MAJOR < 54) - av_frame_get_best_effort_timestamp(frame)); + av_frame_get_best_effort_timestamp(frame) #else - frame->best_effort_timestamp); + frame->best_effort_timestamp #endif + ); } else hal_debug("%s: got_frame: %d stillpicture: %d\n", __func__, got_frame, stillpicture); @@ -789,7 +787,7 @@ static bool swscale(unsigned char *src, unsigned char *dst, int sw, int sh, int bool cVideo::GetScreenImage(unsigned char *&data, int &xres, int &yres, bool get_video, bool get_osd, bool scale_to_video) { hal_info("%s: data 0x%p xres %d yres %d vid %d osd %d scale %d\n", - __func__, data, xres, yres, get_video, get_osd, scale_to_video); + __func__, data, xres, yres, get_video, get_osd, scale_to_video); SWFramebuffer video; std::vector *osd = NULL; std::vector s_osd; /* scaled OSD */ @@ -825,13 +823,13 @@ bool cVideo::GetScreenImage(unsigned char *&data, int &xres, int &yres, bool get osd = glfb_priv->getOSDBuffer(); unsigned int need = av_image_get_buffer_size(AV_PIX_FMT_RGB32, xres, yres, 1); data = (unsigned char *)realloc(data, need); /* will be freed by caller */ - if (data == NULL) /* out of memory? */ + if (data == NULL) /* out of memory? */ return false; if (get_video) { #if USE_OPENGL //memcpy dont work with copy BGR24 to RGB32 - if (vid_w != xres || vid_h != yres) /* scale video into data... */ + if (vid_w != xres || vid_h != yres) /* scale video into data... */ { #endif bool ret = swscale(&video[0], data, vid_w, vid_h, xres, yres, VDEC_PIXFMT); @@ -842,7 +840,7 @@ bool cVideo::GetScreenImage(unsigned char *&data, int &xres, int &yres, bool get } #if USE_OPENGL //memcpy dont work with copy BGR24 to RGB32 } - else /* get_video and no fancy scaling needed */ + else /* get_video and no fancy scaling needed */ { memcpy(data, &video[0], xres * yres * sizeof(uint32_t)); } @@ -878,7 +876,7 @@ bool cVideo::GetScreenImage(unsigned char *&data, int &xres, int &yres, bool get { uint8_t *in = (uint8_t *)(pixpos); uint8_t *out = (uint8_t *)d; - int a = in[3]; /* TODO: big/little endian? */ + int a = in[3]; /* TODO: big/little endian? */ *out = (*out + ((*in - *out) * a) / 256); in++; out++; diff --git a/libgeneric-pc/video_lib.h b/libgeneric-pc/video_lib.h index 6aaa904..39821cf 100644 --- a/libgeneric-pc/video_lib.h +++ b/libgeneric-pc/video_lib.h @@ -107,7 +107,7 @@ typedef enum VIDEO_STD_1080P24, VIDEO_STD_1080P25, VIDEO_STD_AUTO, - VIDEO_STD_1080P50, /* SPARK only */ + VIDEO_STD_1080P50, /* SPARK only */ VIDEO_STD_1080P60, VIDEO_STD_1080P2397, VIDEO_STD_1080P2997, @@ -149,44 +149,21 @@ class cVideo : public OpenThreads::Thread { friend class GLFbPC; friend class cDemux; + private: /* called from GL thread */ class SWFramebuffer : public std::vector { public: SWFramebuffer() : mWidth(0), mHeight(0) {} - void width(int w) - { - mWidth = w; - } - void height(int h) - { - mHeight = h; - } - void pts(uint64_t p) - { - mPts = p; - } - void AR(AVRational a) - { - mAR = a; - } - int width() const - { - return mWidth; - } - int height() const - { - return mHeight; - } - int64_t pts() const - { - return mPts; - } - AVRational AR() const - { - return mAR; - } + void width(int w) { mWidth = w; } + void height(int h) { mHeight = h; } + void pts(uint64_t p) { mPts = p; } + void AR(AVRational a) { mAR = a; } + int width() const { return mWidth; } + int height() const { return mHeight; } + int64_t pts() const { return mPts; } + AVRational AR() const { return mAR; } private: int mWidth; int mHeight; @@ -195,23 +172,15 @@ class cVideo : public OpenThreads::Thread }; int buf_in, buf_out, buf_num; int64_t GetPTS(void); + public: /* constructor & destructor */ cVideo(int mode, void *, void *, unsigned int unit = 0); ~cVideo(void); - void *GetTVEnc() - { - return NULL; - }; - void *GetTVEncSD() - { - return NULL; - }; - void setAVInput(int /*val*/) - { - return; - }; + void *GetTVEnc() { return NULL; }; + void *GetTVEncSD() { return NULL; }; + void setAVInput(int /*val*/) { return; }; /* aspect ratio */ int getAspectRatio(void); @@ -241,66 +210,28 @@ class cVideo : public OpenThreads::Thread bool ShowPicture(const char *fname); void SetSyncMode(AVSYNC_TYPE mode); - bool SetCECMode(VIDEO_HDMI_CEC_MODE) - { - return true; - }; - void SetCECAutoView(bool) - { - return; - }; - void SetCECAutoStandby(bool) - { - return; - }; - int GetAudioDestination() - { - return 0; - }; - void SetAudioDestination(int /*audio_dest*/) - { - return; - }; + bool SetCECMode(VIDEO_HDMI_CEC_MODE) { return true; }; + void SetCECAutoView(bool) { return; }; + void SetCECAutoStandby(bool) { return; }; + int GetAudioDestination() { return 0; }; + void SetAudioDestination(int /*audio_dest*/) { return; }; void StopPicture(); void Standby(unsigned int bOn); void Pig(int x, int y, int w, int h, int osd_w = 1064, int osd_h = 600, int startx = 0, int starty = 0, int endx = 1279, int endy = 719); - void SetControl(int, int) - { - return; - }; + void SetControl(int, int) { return; }; void setContrast(int val); void SetVideoMode(analog_mode_t mode); - void SetDBDR(int) - { - return; - }; - void SetAudioHandle(void *) - { - return; - }; - void SetAutoModes(int [VIDEO_STD_MAX]) - { - return; - }; - int OpenVBI(int) - { - return 0; - }; - int CloseVBI(void) - { - return 0; - }; - int StartVBI(unsigned short) - { - return 0; - }; - int StopVBI(void) - { - return 0; - }; + void SetDBDR(int) { return; }; + void SetAudioHandle(void *) { return; }; + void SetAutoModes(int [VIDEO_STD_MAX]) { return; }; + int OpenVBI(int) { return 0; }; + int CloseVBI(void) { return 0; }; + int StartVBI(unsigned short) { return 0; }; + int StopVBI(void) { return 0; }; void SetDemux(cDemux *dmx); bool GetScreenImage(unsigned char *&data, int &xres, int &yres, bool get_video = true, bool get_osd = false, bool scale_to_video = false); SWFramebuffer *getDecBuf(void); + private: void run(); SWFramebuffer buffers[VDEC_MAXBUFS];