Loading drivers/media/platform/msm/dvb/adapter/mpq_stream_buffer.c +1 −1 Original line number Diff line number Diff line Loading @@ -286,7 +286,7 @@ int mpq_streambuffer_pkt_write( spin_unlock(&sbuff->packet_data.lock); wake_up_all(&sbuff->packet_data.queue); return 0; return idx; } EXPORT_SYMBOL(mpq_streambuffer_pkt_write); Loading drivers/media/platform/msm/dvb/demux/mpq_dmx_plugin_common.c +82 −87 Original line number Diff line number Diff line Loading @@ -1477,7 +1477,6 @@ int mpq_dmx_init_video_feed(struct mpq_feed *mpq_feed) feed_data->continuity_errs = 0; feed_data->ts_packets_num = 0; feed_data->ts_dropped_bytes = 0; feed_data->last_pkt_index = -1; mpq_demux->decoder_stat[feed_data->stream_interface].drop_count = 0; mpq_demux->decoder_stat[feed_data->stream_interface].out_count = 0; Loading Loading @@ -2199,9 +2198,9 @@ static inline void mpq_dmx_prepare_es_event_data( struct mpq_adapter_video_meta_data *meta_data, struct mpq_video_feed_info *feed_data, struct mpq_streambuffer *stream_buffer, struct dmx_data_ready *data) struct dmx_data_ready *data, int cookie) { size_t len = 0; struct dmx_pts_dts_info *pts_dts; if (meta_data->packet_type == DMX_PES_PACKET) { Loading @@ -2218,15 +2217,7 @@ static inline void mpq_dmx_prepare_es_event_data( data->data_length = 0; data->buf.handle = packet->raw_data_handle; /* this has to succeed when called here, after packet was written */ data->buf.cookie = mpq_streambuffer_pkt_next(stream_buffer, feed_data->last_pkt_index, &len); if (data->buf.cookie < 0) MPQ_DVB_DBG_PRINT( "%s: received invalid packet index %d\n", __func__, data->buf.cookie); data->buf.cookie = cookie; data->buf.offset = packet->raw_data_offset; data->buf.len = packet->raw_data_len; data->buf.pts_exists = pts_dts->pts_exist; Loading @@ -2239,9 +2230,6 @@ static inline void mpq_dmx_prepare_es_event_data( data->buf.ts_dropped_bytes = feed_data->ts_dropped_bytes; data->status = DMX_OK_DECODER_BUF; /* save for next time: */ feed_data->last_pkt_index = data->buf.cookie; MPQ_DVB_DBG_PRINT("%s: cookie=%d\n", __func__, data->buf.cookie); /* reset counters */ Loading Loading @@ -2301,6 +2289,7 @@ static void mpq_dmx_decoder_frame_closure(struct mpq_demux *mpq_demux, struct mpq_video_feed_info *feed_data; struct dvb_demux_feed *feed = mpq_feed->dvb_demux_feed; struct dmx_data_ready data; int cookie; feed_data = &mpq_feed->video_info; Loading Loading @@ -2349,14 +2338,17 @@ static void mpq_dmx_decoder_frame_closure(struct mpq_demux *mpq_demux, mpq_dmx_update_decoder_stat(mpq_feed); /* Writing meta-data that includes the framing information */ if (mpq_streambuffer_pkt_write(stream_buffer, &packet, (u8 *)&meta_data) < 0) MPQ_DVB_ERR_PRINT("%s: Couldn't write packet\n", __func__); mpq_dmx_prepare_es_event_data(&packet, &meta_data, feed_data, stream_buffer, &data); cookie = mpq_streambuffer_pkt_write(stream_buffer, &packet, (u8 *)&meta_data); if (cookie >= 0) { mpq_dmx_prepare_es_event_data(&packet, &meta_data, feed_data, stream_buffer, &data, cookie); feed->data_ready_cb.ts(&feed->feed.ts, &data); } else { MPQ_DVB_ERR_PRINT( "%s: mpq_streambuffer_pkt_write failed, ret=%d\n", __func__, cookie); } } spin_unlock(&feed_data->video_buffer_lock); Loading @@ -2378,6 +2370,7 @@ static void mpq_dmx_decoder_pes_closure(struct mpq_demux *mpq_demux, struct mpq_video_feed_info *feed_data; struct dvb_demux_feed *feed = mpq_feed->dvb_demux_feed; struct dmx_data_ready data; int cookie; feed_data = &mpq_feed->video_info; Loading Loading @@ -2416,18 +2409,20 @@ static void mpq_dmx_decoder_pes_closure(struct mpq_demux *mpq_demux, mpq_dmx_update_decoder_stat(mpq_feed); if (mpq_streambuffer_pkt_write(stream_buffer, &packet, (u8 *)&meta_data) < 0) MPQ_DVB_ERR_PRINT("%s: Couldn't write packet\n", __func__); cookie = mpq_streambuffer_pkt_write(stream_buffer, &packet, (u8 *)&meta_data); if (cookie >= 0) { /* Save write offset where new PES will begin */ mpq_streambuffer_get_data_rw_offset(stream_buffer, NULL, &feed_data->frame_offset); mpq_dmx_prepare_es_event_data(&packet, &meta_data, feed_data, stream_buffer, &data); mpq_dmx_prepare_es_event_data(&packet, &meta_data, feed_data, stream_buffer, &data, cookie); feed->data_ready_cb.ts(&feed->feed.ts, &data); } else { MPQ_DVB_ERR_PRINT( "%s: mpq_streambuffer_pkt_write failed, ret=%d\n", __func__, cookie); } } /* Reset PES info */ feed->peslen = 0; Loading Loading @@ -2809,19 +2804,16 @@ static int mpq_dmx_process_video_packet_framing( * writing meta-data that includes * the framing information */ if (mpq_streambuffer_pkt_write(stream_buffer, &packet, (u8 *)&meta_data) < 0) { ret = mpq_streambuffer_pkt_write(stream_buffer, &packet, (u8 *)&meta_data); if (ret < 0) { MPQ_DVB_ERR_PRINT( "%s: " "Couldn't write packet. " "Should never happen\n", __func__); } "%s: mpq_streambuffer_pkt_write failed, ret=%d\n", __func__, ret); } else { mpq_dmx_prepare_es_event_data( &packet, &meta_data, feed_data, stream_buffer, &data); stream_buffer, &data, ret); feed->data_ready_cb.ts(&feed->feed.ts, &data); Loading @@ -2829,6 +2821,7 @@ static int mpq_dmx_process_video_packet_framing( feed_data->video_buffer, NULL, &feed_data->frame_offset); } /* * In linear buffers, after writing the packet Loading Loading @@ -2936,6 +2929,7 @@ static int mpq_dmx_process_video_packet_no_framing( struct mpq_feed *mpq_feed; int discontinuity_indicator = 0; struct dmx_data_ready data; int cookie; mpq_demux = feed->demux->priv; mpq_feed = feed->priv; Loading Loading @@ -3006,17 +3000,18 @@ static int mpq_dmx_process_video_packet_no_framing( mpq_dmx_update_decoder_stat(mpq_feed); if (mpq_streambuffer_pkt_write( stream_buffer, &packet, (u8 *)&meta_data) < 0) cookie = mpq_streambuffer_pkt_write( stream_buffer, &packet, (u8 *)&meta_data); if (cookie < 0) { MPQ_DVB_ERR_PRINT( "%s: " "Couldn't write packet. " "Should never happen\n", __func__); /* Save write offset where new PES will begin */ "%s: mpq_streambuffer_pkt_write failed, ret=%d\n", __func__, cookie); } else { /* * Save write offset where new PES * will begin */ mpq_streambuffer_get_data_rw_offset( stream_buffer, NULL, Loading @@ -3025,15 +3020,14 @@ static int mpq_dmx_process_video_packet_no_framing( mpq_dmx_prepare_es_event_data( &packet, &meta_data, feed_data, stream_buffer, &data); stream_buffer, &data, cookie); feed->data_ready_cb.ts( &feed->feed.ts, &data); feed->data_ready_cb.ts(&feed->feed.ts, &data); } } else { MPQ_DVB_ERR_PRINT( "%s: received PUSI" "while handling PES header" "of previous PES\n", "%s: received PUSI while handling PES header of previous PES\n", __func__); } Loading Loading @@ -3318,7 +3312,7 @@ int mpq_dmx_decoder_eos_cmd(struct mpq_feed *mpq_feed) (u8 *)&oob_meta_data); spin_unlock(&feed_data->video_buffer_lock); return ret; return (ret < 0) ? ret : 0; } void mpq_dmx_convert_tts(struct dvb_demux_feed *feed, Loading Loading @@ -4577,18 +4571,19 @@ static void mpq_sdmx_decoder_filter_results(struct mpq_demux *mpq_demux, __func__, ret); } mpq_dmx_update_decoder_stat(mpq_feed); if (mpq_streambuffer_pkt_write(sbuf, &packet, (u8 *)&meta_data) < 0) ret = mpq_streambuffer_pkt_write(sbuf, &packet, (u8 *)&meta_data); if (ret < 0) { MPQ_DVB_ERR_PRINT( "%s: Couldn't write packet. Should never happen\n", __func__); "%s: mpq_streambuffer_pkt_write failed, ret=%d\n", __func__, ret); } else { mpq_dmx_prepare_es_event_data( &packet, &meta_data, &mpq_feed->video_info, sbuf, &data); sbuf, &data, ret); MPQ_DVB_DBG_PRINT("%s: Notify ES Event\n", __func__); feed->data_ready_cb.ts(&feed->feed.ts, &data); } spin_unlock(&mpq_feed->video_info.video_buffer_lock); } Loading drivers/media/platform/msm/dvb/demux/mpq_dmx_plugin_common.h +0 −3 Original line number Diff line number Diff line Loading @@ -297,8 +297,6 @@ struct mpq_decoder_buffers_desc { * @ts_packets_num: TS packets counter. * @ts_dropped_bytes: counts the number of bytes dropped due to insufficient * buffer space. * @last_pkt_index: used to save the last streambuffer packet index reported in * a new elementary stream data event. * @prev_stc: STC attached to the previous video TS packet */ struct mpq_video_feed_info { Loading Loading @@ -332,7 +330,6 @@ struct mpq_video_feed_info { u32 continuity_errs; u32 ts_packets_num; u32 ts_dropped_bytes; int last_pkt_index; u64 prev_stc; }; Loading drivers/media/platform/msm/dvb/demux/mpq_dmx_plugin_tspp_v2.c +19 −31 Original line number Diff line number Diff line Loading @@ -3162,13 +3162,12 @@ static int mpq_dmx_tspp2_process_video_headers(struct mpq_feed *mpq_feed, ret = mpq_streambuffer_pkt_write(stream_buffer, &packet, (u8 *)&meta_data); if (ret) { if (ret < 0) { MPQ_DVB_ERR_PRINT( "%s: mpq_streambuffer_pkt_write failed, ret=%d\n", __func__, ret); } else { struct dmx_data_ready data; size_t len = 0; mpq_dmx_update_decoder_stat(mpq_feed); Loading @@ -3179,13 +3178,7 @@ static int mpq_dmx_tspp2_process_video_headers(struct mpq_feed *mpq_feed, * The following has to succeed when called here, * after packet was written */ data.buf.cookie = mpq_streambuffer_pkt_next(stream_buffer, feed_data->last_pkt_index, &len); if (data.buf.cookie < 0) { MPQ_DVB_ERR_PRINT( "%s: received invalid packet index %d\n", __func__, data.buf.cookie); } else { data.buf.cookie = ret; data.buf.offset = packet.raw_data_offset; data.buf.len = packet.raw_data_len; data.buf.pts_exists = pts_dts_info->pts_exist; Loading @@ -3198,17 +3191,12 @@ static int mpq_dmx_tspp2_process_video_headers(struct mpq_feed *mpq_feed, data.buf.ts_dropped_bytes = 0; data.status = DMX_OK_DECODER_BUF; /* save for next time: */ feed_data->last_pkt_index = data.buf.cookie; MPQ_DVB_DBG_PRINT("%s: cookie=%d\n", __func__, data.buf.cookie); MPQ_DVB_DBG_PRINT("%s: cookie=%d\n", __func__, data.buf.cookie); ret = mpq_dmx_tspp2_ts_event_check(feed, header_pipe); if (!ret) feed->data_ready_cb.ts(&feed->feed.ts, &data); } } return ret ? ret : 1; } Loading Loading
drivers/media/platform/msm/dvb/adapter/mpq_stream_buffer.c +1 −1 Original line number Diff line number Diff line Loading @@ -286,7 +286,7 @@ int mpq_streambuffer_pkt_write( spin_unlock(&sbuff->packet_data.lock); wake_up_all(&sbuff->packet_data.queue); return 0; return idx; } EXPORT_SYMBOL(mpq_streambuffer_pkt_write); Loading
drivers/media/platform/msm/dvb/demux/mpq_dmx_plugin_common.c +82 −87 Original line number Diff line number Diff line Loading @@ -1477,7 +1477,6 @@ int mpq_dmx_init_video_feed(struct mpq_feed *mpq_feed) feed_data->continuity_errs = 0; feed_data->ts_packets_num = 0; feed_data->ts_dropped_bytes = 0; feed_data->last_pkt_index = -1; mpq_demux->decoder_stat[feed_data->stream_interface].drop_count = 0; mpq_demux->decoder_stat[feed_data->stream_interface].out_count = 0; Loading Loading @@ -2199,9 +2198,9 @@ static inline void mpq_dmx_prepare_es_event_data( struct mpq_adapter_video_meta_data *meta_data, struct mpq_video_feed_info *feed_data, struct mpq_streambuffer *stream_buffer, struct dmx_data_ready *data) struct dmx_data_ready *data, int cookie) { size_t len = 0; struct dmx_pts_dts_info *pts_dts; if (meta_data->packet_type == DMX_PES_PACKET) { Loading @@ -2218,15 +2217,7 @@ static inline void mpq_dmx_prepare_es_event_data( data->data_length = 0; data->buf.handle = packet->raw_data_handle; /* this has to succeed when called here, after packet was written */ data->buf.cookie = mpq_streambuffer_pkt_next(stream_buffer, feed_data->last_pkt_index, &len); if (data->buf.cookie < 0) MPQ_DVB_DBG_PRINT( "%s: received invalid packet index %d\n", __func__, data->buf.cookie); data->buf.cookie = cookie; data->buf.offset = packet->raw_data_offset; data->buf.len = packet->raw_data_len; data->buf.pts_exists = pts_dts->pts_exist; Loading @@ -2239,9 +2230,6 @@ static inline void mpq_dmx_prepare_es_event_data( data->buf.ts_dropped_bytes = feed_data->ts_dropped_bytes; data->status = DMX_OK_DECODER_BUF; /* save for next time: */ feed_data->last_pkt_index = data->buf.cookie; MPQ_DVB_DBG_PRINT("%s: cookie=%d\n", __func__, data->buf.cookie); /* reset counters */ Loading Loading @@ -2301,6 +2289,7 @@ static void mpq_dmx_decoder_frame_closure(struct mpq_demux *mpq_demux, struct mpq_video_feed_info *feed_data; struct dvb_demux_feed *feed = mpq_feed->dvb_demux_feed; struct dmx_data_ready data; int cookie; feed_data = &mpq_feed->video_info; Loading Loading @@ -2349,14 +2338,17 @@ static void mpq_dmx_decoder_frame_closure(struct mpq_demux *mpq_demux, mpq_dmx_update_decoder_stat(mpq_feed); /* Writing meta-data that includes the framing information */ if (mpq_streambuffer_pkt_write(stream_buffer, &packet, (u8 *)&meta_data) < 0) MPQ_DVB_ERR_PRINT("%s: Couldn't write packet\n", __func__); mpq_dmx_prepare_es_event_data(&packet, &meta_data, feed_data, stream_buffer, &data); cookie = mpq_streambuffer_pkt_write(stream_buffer, &packet, (u8 *)&meta_data); if (cookie >= 0) { mpq_dmx_prepare_es_event_data(&packet, &meta_data, feed_data, stream_buffer, &data, cookie); feed->data_ready_cb.ts(&feed->feed.ts, &data); } else { MPQ_DVB_ERR_PRINT( "%s: mpq_streambuffer_pkt_write failed, ret=%d\n", __func__, cookie); } } spin_unlock(&feed_data->video_buffer_lock); Loading @@ -2378,6 +2370,7 @@ static void mpq_dmx_decoder_pes_closure(struct mpq_demux *mpq_demux, struct mpq_video_feed_info *feed_data; struct dvb_demux_feed *feed = mpq_feed->dvb_demux_feed; struct dmx_data_ready data; int cookie; feed_data = &mpq_feed->video_info; Loading Loading @@ -2416,18 +2409,20 @@ static void mpq_dmx_decoder_pes_closure(struct mpq_demux *mpq_demux, mpq_dmx_update_decoder_stat(mpq_feed); if (mpq_streambuffer_pkt_write(stream_buffer, &packet, (u8 *)&meta_data) < 0) MPQ_DVB_ERR_PRINT("%s: Couldn't write packet\n", __func__); cookie = mpq_streambuffer_pkt_write(stream_buffer, &packet, (u8 *)&meta_data); if (cookie >= 0) { /* Save write offset where new PES will begin */ mpq_streambuffer_get_data_rw_offset(stream_buffer, NULL, &feed_data->frame_offset); mpq_dmx_prepare_es_event_data(&packet, &meta_data, feed_data, stream_buffer, &data); mpq_dmx_prepare_es_event_data(&packet, &meta_data, feed_data, stream_buffer, &data, cookie); feed->data_ready_cb.ts(&feed->feed.ts, &data); } else { MPQ_DVB_ERR_PRINT( "%s: mpq_streambuffer_pkt_write failed, ret=%d\n", __func__, cookie); } } /* Reset PES info */ feed->peslen = 0; Loading Loading @@ -2809,19 +2804,16 @@ static int mpq_dmx_process_video_packet_framing( * writing meta-data that includes * the framing information */ if (mpq_streambuffer_pkt_write(stream_buffer, &packet, (u8 *)&meta_data) < 0) { ret = mpq_streambuffer_pkt_write(stream_buffer, &packet, (u8 *)&meta_data); if (ret < 0) { MPQ_DVB_ERR_PRINT( "%s: " "Couldn't write packet. " "Should never happen\n", __func__); } "%s: mpq_streambuffer_pkt_write failed, ret=%d\n", __func__, ret); } else { mpq_dmx_prepare_es_event_data( &packet, &meta_data, feed_data, stream_buffer, &data); stream_buffer, &data, ret); feed->data_ready_cb.ts(&feed->feed.ts, &data); Loading @@ -2829,6 +2821,7 @@ static int mpq_dmx_process_video_packet_framing( feed_data->video_buffer, NULL, &feed_data->frame_offset); } /* * In linear buffers, after writing the packet Loading Loading @@ -2936,6 +2929,7 @@ static int mpq_dmx_process_video_packet_no_framing( struct mpq_feed *mpq_feed; int discontinuity_indicator = 0; struct dmx_data_ready data; int cookie; mpq_demux = feed->demux->priv; mpq_feed = feed->priv; Loading Loading @@ -3006,17 +3000,18 @@ static int mpq_dmx_process_video_packet_no_framing( mpq_dmx_update_decoder_stat(mpq_feed); if (mpq_streambuffer_pkt_write( stream_buffer, &packet, (u8 *)&meta_data) < 0) cookie = mpq_streambuffer_pkt_write( stream_buffer, &packet, (u8 *)&meta_data); if (cookie < 0) { MPQ_DVB_ERR_PRINT( "%s: " "Couldn't write packet. " "Should never happen\n", __func__); /* Save write offset where new PES will begin */ "%s: mpq_streambuffer_pkt_write failed, ret=%d\n", __func__, cookie); } else { /* * Save write offset where new PES * will begin */ mpq_streambuffer_get_data_rw_offset( stream_buffer, NULL, Loading @@ -3025,15 +3020,14 @@ static int mpq_dmx_process_video_packet_no_framing( mpq_dmx_prepare_es_event_data( &packet, &meta_data, feed_data, stream_buffer, &data); stream_buffer, &data, cookie); feed->data_ready_cb.ts( &feed->feed.ts, &data); feed->data_ready_cb.ts(&feed->feed.ts, &data); } } else { MPQ_DVB_ERR_PRINT( "%s: received PUSI" "while handling PES header" "of previous PES\n", "%s: received PUSI while handling PES header of previous PES\n", __func__); } Loading Loading @@ -3318,7 +3312,7 @@ int mpq_dmx_decoder_eos_cmd(struct mpq_feed *mpq_feed) (u8 *)&oob_meta_data); spin_unlock(&feed_data->video_buffer_lock); return ret; return (ret < 0) ? ret : 0; } void mpq_dmx_convert_tts(struct dvb_demux_feed *feed, Loading Loading @@ -4577,18 +4571,19 @@ static void mpq_sdmx_decoder_filter_results(struct mpq_demux *mpq_demux, __func__, ret); } mpq_dmx_update_decoder_stat(mpq_feed); if (mpq_streambuffer_pkt_write(sbuf, &packet, (u8 *)&meta_data) < 0) ret = mpq_streambuffer_pkt_write(sbuf, &packet, (u8 *)&meta_data); if (ret < 0) { MPQ_DVB_ERR_PRINT( "%s: Couldn't write packet. Should never happen\n", __func__); "%s: mpq_streambuffer_pkt_write failed, ret=%d\n", __func__, ret); } else { mpq_dmx_prepare_es_event_data( &packet, &meta_data, &mpq_feed->video_info, sbuf, &data); sbuf, &data, ret); MPQ_DVB_DBG_PRINT("%s: Notify ES Event\n", __func__); feed->data_ready_cb.ts(&feed->feed.ts, &data); } spin_unlock(&mpq_feed->video_info.video_buffer_lock); } Loading
drivers/media/platform/msm/dvb/demux/mpq_dmx_plugin_common.h +0 −3 Original line number Diff line number Diff line Loading @@ -297,8 +297,6 @@ struct mpq_decoder_buffers_desc { * @ts_packets_num: TS packets counter. * @ts_dropped_bytes: counts the number of bytes dropped due to insufficient * buffer space. * @last_pkt_index: used to save the last streambuffer packet index reported in * a new elementary stream data event. * @prev_stc: STC attached to the previous video TS packet */ struct mpq_video_feed_info { Loading Loading @@ -332,7 +330,6 @@ struct mpq_video_feed_info { u32 continuity_errs; u32 ts_packets_num; u32 ts_dropped_bytes; int last_pkt_index; u64 prev_stc; }; Loading
drivers/media/platform/msm/dvb/demux/mpq_dmx_plugin_tspp_v2.c +19 −31 Original line number Diff line number Diff line Loading @@ -3162,13 +3162,12 @@ static int mpq_dmx_tspp2_process_video_headers(struct mpq_feed *mpq_feed, ret = mpq_streambuffer_pkt_write(stream_buffer, &packet, (u8 *)&meta_data); if (ret) { if (ret < 0) { MPQ_DVB_ERR_PRINT( "%s: mpq_streambuffer_pkt_write failed, ret=%d\n", __func__, ret); } else { struct dmx_data_ready data; size_t len = 0; mpq_dmx_update_decoder_stat(mpq_feed); Loading @@ -3179,13 +3178,7 @@ static int mpq_dmx_tspp2_process_video_headers(struct mpq_feed *mpq_feed, * The following has to succeed when called here, * after packet was written */ data.buf.cookie = mpq_streambuffer_pkt_next(stream_buffer, feed_data->last_pkt_index, &len); if (data.buf.cookie < 0) { MPQ_DVB_ERR_PRINT( "%s: received invalid packet index %d\n", __func__, data.buf.cookie); } else { data.buf.cookie = ret; data.buf.offset = packet.raw_data_offset; data.buf.len = packet.raw_data_len; data.buf.pts_exists = pts_dts_info->pts_exist; Loading @@ -3198,17 +3191,12 @@ static int mpq_dmx_tspp2_process_video_headers(struct mpq_feed *mpq_feed, data.buf.ts_dropped_bytes = 0; data.status = DMX_OK_DECODER_BUF; /* save for next time: */ feed_data->last_pkt_index = data.buf.cookie; MPQ_DVB_DBG_PRINT("%s: cookie=%d\n", __func__, data.buf.cookie); MPQ_DVB_DBG_PRINT("%s: cookie=%d\n", __func__, data.buf.cookie); ret = mpq_dmx_tspp2_ts_event_check(feed, header_pipe); if (!ret) feed->data_ready_cb.ts(&feed->feed.ts, &data); } } return ret ? ret : 1; } Loading