summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordiego <diego@b3059339-0415-0410-9bf9-f77b7e298cf2>2010-06-21 10:40:30 +0000
committerUoti Urpala <uau@glyph.nonexistent.invalid>2010-11-02 04:11:07 +0200
commit899caa91f195ad422731761d69035b9de23ebb00 (patch)
tree84abe007f25ea301f6976caf85e60f3d6d54ceb9
parentf07956632ea0eb5cc2cf4d5d4d1cbb1c461222f4 (diff)
downloadmpv-899caa91f195ad422731761d69035b9de23ebb00.tar.bz2
mpv-899caa91f195ad422731761d69035b9de23ebb00.tar.xz
stream_cdda.c: Reorder functions to avoid forward declarations.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31511 b3059339-0415-0410-9bf9-f77b7e298cf2
-rw-r--r--stream/stream_cdda.c216
1 files changed, 106 insertions, 110 deletions
diff --git a/stream/stream_cdda.c b/stream/stream_cdda.c
index 0dca95ddda..b768d25682 100644
--- a/stream/stream_cdda.c
+++ b/stream/stream_cdda.c
@@ -125,9 +125,112 @@ const m_option_t cdda_opts[] = {
{NULL, NULL, 0, 0, 0, 0, NULL}
};
-static int seek(stream_t* s,off_t pos);
-static int fill_buffer(stream_t* s, char* buffer, int max_len);
-static void close_cdda(stream_t* s);
+#ifndef CONFIG_LIBCDIO
+static void cdparanoia_callback(long inpos, int function) {
+#else
+static void cdparanoia_callback(long int inpos, paranoia_cb_mode_t function) {
+#endif
+}
+
+static int fill_buffer(stream_t* s, char* buffer, int max_len) {
+ cdda_priv* p = (cdda_priv*)s->priv;
+ cd_track_t *cd_track;
+ int16_t * buf;
+ int i;
+
+ if((p->sector < p->start_sector) || (p->sector > p->end_sector)) {
+ s->eof = 1;
+ return 0;
+ }
+
+ buf = paranoia_read(p->cdp,cdparanoia_callback);
+ if (!buf)
+ return 0;
+
+#if HAVE_BIGENDIAN
+ for(i=0;i<CD_FRAMESIZE_RAW/2;i++)
+ buf[i]=le2me_16(buf[i]);
+#endif
+
+ p->sector++;
+ memcpy(buffer,buf,CD_FRAMESIZE_RAW);
+
+ for(i=0;i<p->cd->tracks;i++){
+ if(p->cd->disc_toc[i].dwStartSector==p->sector-1) {
+ cd_track = cd_info_get_track(p->cd_info, i+1);
+//printf("Track %d, sector=%d\n", i, p->sector-1);
+ if( cd_track!=NULL ) {
+ mp_msg(MSGT_SEEK, MSGL_INFO, "\n%s\n", cd_track->name);
+ mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_CDDA_TRACK=%d\n", cd_track->track_nb);
+ }
+ break;
+ }
+ }
+
+
+ return CD_FRAMESIZE_RAW;
+}
+
+static int seek(stream_t* s,off_t newpos) {
+ cdda_priv* p = (cdda_priv*)s->priv;
+ cd_track_t *cd_track;
+ int sec;
+ int current_track=0, seeked_track=0;
+ int seek_to_track = 0;
+ int i;
+
+ s->pos = newpos;
+ sec = s->pos/CD_FRAMESIZE_RAW;
+ if (s->pos < 0 || sec > p->end_sector) {
+ s->eof = 1;
+ return 0;
+ }
+
+//printf("pos: %d, sec: %d ## %d\n", (int)s->pos, (int)sec, CD_FRAMESIZE_RAW);
+//printf("sector: %d new: %d\n", p->sector, sec );
+
+ for(i=0;i<p->cd->tracks;i++){
+// printf("trk #%d: %d .. %d\n",i,p->cd->disc_toc[i].dwStartSector,p->cd->disc_toc[i+1].dwStartSector);
+ if( p->sector>=p->cd->disc_toc[i].dwStartSector && p->sector<p->cd->disc_toc[i+1].dwStartSector ) {
+ current_track = i;
+ }
+ if( sec>=p->cd->disc_toc[i].dwStartSector && sec<p->cd->disc_toc[i+1].dwStartSector ) {
+ seeked_track = i;
+ seek_to_track = sec == p->cd->disc_toc[i].dwStartSector;
+ }
+ }
+//printf("current: %d, seeked: %d\n", current_track, seeked_track);
+ if (current_track != seeked_track && !seek_to_track) {
+//printf("Track %d, sector=%d\n", seeked_track, sec);
+ cd_track = cd_info_get_track(p->cd_info, seeked_track+1);
+ if( cd_track!=NULL ) {
+ mp_msg(MSGT_SEEK, MSGL_INFO, "\n%s\n", cd_track->name);
+ mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_CDDA_TRACK=%d\n", cd_track->track_nb);
+ }
+
+ }
+#if 0
+ if(sec < p->start_sector)
+ sec = p->start_sector;
+ else if(sec > p->end_sector)
+ sec = p->end_sector;
+#endif
+
+ p->sector = sec;
+// s->pos = sec*CD_FRAMESIZE_RAW;
+
+//printf("seek: %d, sec: %d\n", (int)s->pos, sec);
+ paranoia_seek(p->cdp,sec,SEEK_SET);
+ return 1;
+}
+
+static void close_cdda(stream_t* s) {
+ cdda_priv* p = (cdda_priv*)s->priv;
+ paranoia_free(p->cdp);
+ cdda_close(p->cd);
+ cd_info_free(p->cd_info);
+ free(p);
+}
static int get_track_by_sector(cdda_priv *p, unsigned int sector) {
int i;
@@ -357,113 +460,6 @@ static int open_cdda(stream_t *st,int m, void* opts, int* file_format) {
return STREAM_OK;
}
-#ifndef CONFIG_LIBCDIO
-static void cdparanoia_callback(long inpos, int function) {
-#else
-static void cdparanoia_callback(long int inpos, paranoia_cb_mode_t function) {
-#endif
-}
-
-static int fill_buffer(stream_t* s, char* buffer, int max_len) {
- cdda_priv* p = (cdda_priv*)s->priv;
- cd_track_t *cd_track;
- int16_t * buf;
- int i;
-
- if((p->sector < p->start_sector) || (p->sector > p->end_sector)) {
- s->eof = 1;
- return 0;
- }
-
- buf = paranoia_read(p->cdp,cdparanoia_callback);
- if (!buf)
- return 0;
-
-#if HAVE_BIGENDIAN
- for(i=0;i<CD_FRAMESIZE_RAW/2;i++)
- buf[i]=le2me_16(buf[i]);
-#endif
-
- p->sector++;
- memcpy(buffer,buf,CD_FRAMESIZE_RAW);
-
- for(i=0;i<p->cd->tracks;i++){
- if(p->cd->disc_toc[i].dwStartSector==p->sector-1) {
- cd_track = cd_info_get_track(p->cd_info, i+1);
-//printf("Track %d, sector=%d\n", i, p->sector-1);
- if( cd_track!=NULL ) {
- mp_msg(MSGT_SEEK, MSGL_INFO, "\n%s\n", cd_track->name);
- mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_CDDA_TRACK=%d\n", cd_track->track_nb);
- }
- break;
- }
- }
-
-
- return CD_FRAMESIZE_RAW;
-}
-
-static int seek(stream_t* s,off_t newpos) {
- cdda_priv* p = (cdda_priv*)s->priv;
- cd_track_t *cd_track;
- int sec;
- int current_track=0, seeked_track=0;
- int seek_to_track = 0;
- int i;
-
- s->pos = newpos;
- sec = s->pos/CD_FRAMESIZE_RAW;
- if (s->pos < 0 || sec > p->end_sector) {
- s->eof = 1;
- return 0;
- }
-
-//printf("pos: %d, sec: %d ## %d\n", (int)s->pos, (int)sec, CD_FRAMESIZE_RAW);
-//printf("sector: %d new: %d\n", p->sector, sec );
-
- for(i=0;i<p->cd->tracks;i++){
-// printf("trk #%d: %d .. %d\n",i,p->cd->disc_toc[i].dwStartSector,p->cd->disc_toc[i+1].dwStartSector);
- if( p->sector>=p->cd->disc_toc[i].dwStartSector && p->sector<p->cd->disc_toc[i+1].dwStartSector ) {
- current_track = i;
- }
- if( sec>=p->cd->disc_toc[i].dwStartSector && sec<p->cd->disc_toc[i+1].dwStartSector ) {
- seeked_track = i;
- seek_to_track = sec == p->cd->disc_toc[i].dwStartSector;
- }
- }
-//printf("current: %d, seeked: %d\n", current_track, seeked_track);
- if (current_track != seeked_track && !seek_to_track) {
-//printf("Track %d, sector=%d\n", seeked_track, sec);
- cd_track = cd_info_get_track(p->cd_info, seeked_track+1);
- if( cd_track!=NULL ) {
- mp_msg(MSGT_SEEK, MSGL_INFO, "\n%s\n", cd_track->name);
- mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_CDDA_TRACK=%d\n", cd_track->track_nb);
- }
-
- }
-#if 0
- if(sec < p->start_sector)
- sec = p->start_sector;
- else if(sec > p->end_sector)
- sec = p->end_sector;
-#endif
-
- p->sector = sec;
-// s->pos = sec*CD_FRAMESIZE_RAW;
-
-//printf("seek: %d, sec: %d\n", (int)s->pos, sec);
- paranoia_seek(p->cdp,sec,SEEK_SET);
- return 1;
-}
-
-static void close_cdda(stream_t* s) {
- cdda_priv* p = (cdda_priv*)s->priv;
- paranoia_free(p->cdp);
- cdda_close(p->cd);
- cd_info_free(p->cd_info);
- free(p);
-}
-
const stream_info_t stream_info_cdda = {
"CDDA",
"cdda",